Skip to content

Commit 3c8ecc4

Browse files
Update api spec (#536)
* YOYO NEW API SPEC! * I have generated the latest API! --------- Co-authored-by: zoo-github-actions-auth[bot] <zoo-github-actions-auth[bot]@users.noreply.github.com>
1 parent dbe1423 commit 3c8ecc4

File tree

9 files changed

+155
-69
lines changed

9 files changed

+155
-69
lines changed

kittycad.py.patch.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@
179179
"op": "add",
180180
"path": "/paths/~1file~1conversion/post/x-python",
181181
"value": {
182-
"example": "from kittycad.models.conversion_params import ConversionParams\nfrom kittycad.models.output_format3d import OptionPly\nfrom kittycad.models.system import System\nfrom kittycad.models.axis_direction_pair import AxisDirectionPair\nfrom kittycad.models.axis import Axis\nfrom kittycad.models.direction import Direction\nfrom kittycad.models.axis_direction_pair import AxisDirectionPair\nfrom kittycad.models.axis import Axis\nfrom kittycad.models.direction import Direction\nfrom kittycad.models.selection import OptionDefaultScene\nfrom kittycad.models.selection import Selection\nfrom kittycad.models.ply_storage import PlyStorage\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.models.output_format3d import OutputFormat3d\nfrom kittycad.models.input_format3d import OptionSldprt\nfrom kittycad.models.input_format3d import InputFormat3d\nfrom pathlib import Path\nfrom typing import Dict\nfrom kittycad._io_types import SyncUpload\nfrom kittycad.models import FileConversion\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_create_file_conversion_options():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: FileConversion = client.file.create_file_conversion_options(body=ConversionParams(\n output_format=OutputFormat3d(OptionPly(\n coords=System(\n forward=AxisDirectionPair(\n axis=Axis.Y,\n direction=Direction.POSITIVE,\n ),\n up=AxisDirectionPair(\n axis=Axis.Y,\n direction=Direction.POSITIVE,\n ),\n ),\n selection=Selection(OptionDefaultScene()),\n storage=PlyStorage.ASCII,\n units=UnitLength.CM,\n )),\n src_format=InputFormat3d(OptionSldprt(\n split_closed_faces=False,\n )),\n ),\n file_attachments={\n \"main.kcl\": Path(\"path/to/main.kcl\"),\n \"helper.kcl\": Path(\"path/to/helper.kcl\"),\n })\n\n\n body: FileConversion = result\n print(body)\n\n",
182+
"example": "from kittycad.models.conversion_params import ConversionParams\nfrom kittycad.models.output_format3d import OptionGltf\nfrom kittycad.models.gltf_presentation import GltfPresentation\nfrom kittycad.models.gltf_storage import GltfStorage\nfrom kittycad.models.output_format3d import OutputFormat3d\nfrom kittycad.models.input_format3d import OptionStl\nfrom kittycad.models.system import System\nfrom kittycad.models.axis_direction_pair import AxisDirectionPair\nfrom kittycad.models.axis import Axis\nfrom kittycad.models.direction import Direction\nfrom kittycad.models.axis_direction_pair import AxisDirectionPair\nfrom kittycad.models.axis import Axis\nfrom kittycad.models.direction import Direction\nfrom kittycad.models.unit_length import UnitLength\nfrom kittycad.models.input_format3d import InputFormat3d\nfrom pathlib import Path\nfrom typing import Dict\nfrom kittycad._io_types import SyncUpload\nfrom kittycad.models import FileConversion\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_create_file_conversion_options():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: FileConversion = client.file.create_file_conversion_options(body=ConversionParams(\n output_format=OutputFormat3d(OptionGltf(\n presentation=GltfPresentation.COMPACT,\n storage=GltfStorage.BINARY,\n )),\n src_format=InputFormat3d(OptionStl(\n coords=System(\n forward=AxisDirectionPair(\n axis=Axis.Y,\n direction=Direction.POSITIVE,\n ),\n up=AxisDirectionPair(\n axis=Axis.Y,\n direction=Direction.POSITIVE,\n ),\n ),\n units=UnitLength.CM,\n )),\n ),\n file_attachments={\n \"main.kcl\": Path(\"path/to/main.kcl\"),\n \"helper.kcl\": Path(\"path/to/helper.kcl\"),\n })\n\n\n body: FileConversion = result\n print(body)\n\n",
183183
"libDocsLink": "https://python.api.docs.zoo.dev/_autosummary/kittycad.KittyCAD.html#kittycad.KittyCAD.file"
184184
}
185185
},
@@ -363,7 +363,7 @@
363363
"op": "add",
364364
"path": "/paths/~1orgs~1{id}~1enterprise~1pricing/put/x-python",
365365
"value": {
366-
"example": "from kittycad.models.uuid import Uuid\nfrom kittycad.models.uuid import Uuid\nfrom kittycad.models.enterprise_subscription_tier_price import OptionPerUser\nfrom kittycad.models.plan_interval import PlanInterval\nfrom kittycad.models.enterprise_subscription_tier_price import EnterpriseSubscriptionTierPrice\nfrom kittycad.models import ZooProductSubscriptions\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_update_enterprise_pricing_for_org():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: ZooProductSubscriptions = client.orgs.update_enterprise_pricing_for_org(id=Uuid(\"<string>\"),\n body=EnterpriseSubscriptionTierPrice(OptionPerUser(\n interval=PlanInterval.DAY,\n price=3.14,\n )))\n\n\n body: ZooProductSubscriptions = result\n print(body)\n\n",
366+
"example": "from kittycad.models.uuid import Uuid\nfrom kittycad.models.uuid import Uuid\nfrom kittycad.models.enterprise_subscription_tier_price import OptionFlat\nfrom kittycad.models.plan_interval import PlanInterval\nfrom kittycad.models.enterprise_subscription_tier_price import EnterpriseSubscriptionTierPrice\nfrom kittycad.models import ZooProductSubscriptions\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_update_enterprise_pricing_for_org():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: ZooProductSubscriptions = client.orgs.update_enterprise_pricing_for_org(id=Uuid(\"<string>\"),\n body=EnterpriseSubscriptionTierPrice(OptionFlat(\n interval=PlanInterval.DAY,\n price=3.14,\n )))\n\n\n body: ZooProductSubscriptions = result\n print(body)\n\n",
367367
"libDocsLink": "https://python.api.docs.zoo.dev/_autosummary/kittycad.KittyCAD.html#kittycad.KittyCAD.orgs"
368368
}
369369
},
@@ -579,15 +579,15 @@
579579
"op": "add",
580580
"path": "/paths/~1org~1saml~1idp/post/x-python",
581581
"value": {
582-
"example": "from kittycad.models.saml_identity_provider_create import SamlIdentityProviderCreate\nfrom kittycad.models.idp_metadata_source import OptionUrl\nfrom kittycad.models.idp_metadata_source import IdpMetadataSource\nfrom kittycad.models import SamlIdentityProvider\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_create_org_saml_idp():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: SamlIdentityProvider = client.orgs.create_org_saml_idp(body=SamlIdentityProviderCreate(\n idp_entity_id=\"<string>\",\n idp_metadata_source=IdpMetadataSource(OptionUrl(\n url=\"<string>\",\n )),\n technical_contact_email=\"<string>\",\n ))\n\n\n body: SamlIdentityProvider = result\n print(body)\n\n",
582+
"example": "from kittycad.models.saml_identity_provider_create import SamlIdentityProviderCreate\nfrom kittycad.models.idp_metadata_source import OptionBase64EncodedXml\nfrom kittycad.models.base64data import Base64Data\nfrom kittycad.models.idp_metadata_source import IdpMetadataSource\nfrom kittycad.models import SamlIdentityProvider\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_create_org_saml_idp():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: SamlIdentityProvider = client.orgs.create_org_saml_idp(body=SamlIdentityProviderCreate(\n idp_entity_id=\"<string>\",\n idp_metadata_source=IdpMetadataSource(OptionBase64EncodedXml(\n data=Base64Data(b\"<bytes>\"),\n )),\n technical_contact_email=\"<string>\",\n ))\n\n\n body: SamlIdentityProvider = result\n print(body)\n\n",
583583
"libDocsLink": "https://python.api.docs.zoo.dev/_autosummary/kittycad.KittyCAD.html#kittycad.KittyCAD.orgs"
584584
}
585585
},
586586
{
587587
"op": "add",
588588
"path": "/paths/~1org~1saml~1idp/put/x-python",
589589
"value": {
590-
"example": "from kittycad.models.saml_identity_provider_create import SamlIdentityProviderCreate\nfrom kittycad.models.idp_metadata_source import OptionUrl\nfrom kittycad.models.idp_metadata_source import IdpMetadataSource\nfrom kittycad.models import SamlIdentityProvider\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_update_org_saml_idp():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: SamlIdentityProvider = client.orgs.update_org_saml_idp(body=SamlIdentityProviderCreate(\n idp_entity_id=\"<string>\",\n idp_metadata_source=IdpMetadataSource(OptionUrl(\n url=\"<string>\",\n )),\n technical_contact_email=\"<string>\",\n ))\n\n\n body: SamlIdentityProvider = result\n print(body)\n\n",
590+
"example": "from kittycad.models.saml_identity_provider_create import SamlIdentityProviderCreate\nfrom kittycad.models.idp_metadata_source import OptionBase64EncodedXml\nfrom kittycad.models.base64data import Base64Data\nfrom kittycad.models.idp_metadata_source import IdpMetadataSource\nfrom kittycad.models import SamlIdentityProvider\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_update_org_saml_idp():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n result: SamlIdentityProvider = client.orgs.update_org_saml_idp(body=SamlIdentityProviderCreate(\n idp_entity_id=\"<string>\",\n idp_metadata_source=IdpMetadataSource(OptionBase64EncodedXml(\n data=Base64Data(b\"<bytes>\"),\n )),\n technical_contact_email=\"<string>\",\n ))\n\n\n body: SamlIdentityProvider = result\n print(body)\n\n",
591591
"libDocsLink": "https://python.api.docs.zoo.dev/_autosummary/kittycad.KittyCAD.html#kittycad.KittyCAD.orgs"
592592
}
593593
},
@@ -1163,7 +1163,7 @@
11631163
"op": "add",
11641164
"path": "/paths/~1ws~1ml~1copilot/get/x-python",
11651165
"value": {
1166-
"example": "from kittycad.models import MlCopilotClientMessage\nfrom kittycad.models.ml_copilot_client_message import OptionUser\nfrom kittycad.models.ml_copilot_tool import MlCopilotTool\nfrom typing import List\nfrom kittycad.models.source_range_prompt import SourceRangePrompt\nfrom kittycad.models.source_range import SourceRange\nfrom kittycad.models.source_position import SourcePosition\nfrom kittycad.models.source_position import SourcePosition\nfrom typing import List\nfrom kittycad.models import MlCopilotServerMessage\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_ml_copilot_ws():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n # Connect to the websocket.\n with client.ml.ml_copilot_ws(conversation_id=None,\n replay=None) as websocket:\n\n # Send a message.\n websocket.send(MlCopilotClientMessage(OptionUser(\ncontent=\"<string>\",\n\ncurrent_files={\"<string>\": b\"<bytes>\"},\n\nforced_tools=[MlCopilotTool.EDIT_KCL_CODE],\n\nsource_ranges=[SourceRangePrompt(\nprompt=\"<string>\",\n\nrange=SourceRange(\nend=SourcePosition(\ncolumn=10,\n\nline=10,\n),\n\nstart=SourcePosition(\ncolumn=10,\n\nline=10,\n),\n),\n)],\n)))\n\n # Get a message.\n message = websocket.recv()\n print(message)\n\n ",
1166+
"example": "from kittycad.models import MlCopilotClientMessage\nfrom kittycad.models.ml_copilot_client_message import OptionHeaders\nfrom kittycad.models import MlCopilotServerMessage\nfrom typing import Union, Any, Optional, List, Tuple\nfrom kittycad.types import Response\ndef example_ml_copilot_ws():\n client = KittyCAD() # Uses KITTYCAD_API_TOKEN environment variable\n\n # Connect to the websocket.\n with client.ml.ml_copilot_ws(conversation_id=None,\n replay=None) as websocket:\n\n # Send a message.\n websocket.send(MlCopilotClientMessage(OptionHeaders(\nheaders={\"<string>\": \"<string>\"},\n)))\n\n # Get a message.\n message = websocket.recv()\n print(message)\n\n ",
11671167
"libDocsLink": "https://python.api.docs.zoo.dev/_autosummary/kittycad.KittyCAD.html#kittycad.KittyCAD.ml"
11681168
}
11691169
},

kittycad/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@
287287
from .saml_identity_provider import SamlIdentityProvider
288288
from .saml_identity_provider_create import SamlIdentityProviderCreate
289289
from .scene_clear_all import SceneClearAll
290+
from .scene_get_entity_ids import SceneGetEntityIds
290291
from .scene_selection_type import SceneSelectionType
291292
from .scene_tool_type import SceneToolType
292293
from .select_add import SelectAdd

kittycad/models/invoice.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ class Invoice(KittyCadBaseModel):
4545

4646
paid: bool = False
4747

48-
payment_intent_id: Optional[str] = None
49-
5048
pdf: Optional[str] = None
5149

5250
receipt_number: Optional[str] = None

kittycad/models/ml_copilot_supported_models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ class MlCopilotSupportedModels(str, Enum):
2020

2121
GPT5 = "gpt5"
2222

23-
"""# o3""" # noqa: E501
23+
"""# o3-mini""" # noqa: E501
2424

25-
O3 = "o3"
25+
O3_MINI = "o3_mini"
2626

2727
def __str__(self) -> str:
2828
return str(self.value)

kittycad/models/modeling_cmd.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,18 @@ class OptionSetSelectionFilter(KittyCadBaseModel):
12481248
type: Literal["set_selection_filter"] = "set_selection_filter"
12491249

12501250

1251+
class OptionSceneGetEntityIds(KittyCadBaseModel):
1252+
"""Get the ids of a given entity type."""
1253+
1254+
filter: List[EntityType]
1255+
1256+
skip: int
1257+
1258+
take: int
1259+
1260+
type: Literal["scene_get_entity_ids"] = "scene_get_entity_ids"
1261+
1262+
12511263
class OptionDefaultCameraSetOrthographic(KittyCadBaseModel):
12521264
"""Use orthographic projection."""
12531265

@@ -1555,6 +1567,7 @@ class OptionSetGridAutoScale(KittyCadBaseModel):
15551567
OptionDefaultCameraFocusOn,
15561568
OptionSetSelectionType,
15571569
OptionSetSelectionFilter,
1570+
OptionSceneGetEntityIds,
15581571
OptionDefaultCameraSetOrthographic,
15591572
OptionDefaultCameraSetPerspective,
15601573
OptionDefaultCameraCenterToSelection,

kittycad/models/ok_modeling_cmd_response.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
from ..models.revolve import Revolve
106106
from ..models.revolve_about_edge import RevolveAboutEdge
107107
from ..models.scene_clear_all import SceneClearAll
108+
from ..models.scene_get_entity_ids import SceneGetEntityIds
108109
from ..models.select_add import SelectAdd
109110
from ..models.select_clear import SelectClear
110111
from ..models.select_get import SelectGet
@@ -894,6 +895,14 @@ class OptionGetEntityType(KittyCadBaseModel):
894895
type: Literal["get_entity_type"] = "get_entity_type"
895896

896897

898+
class OptionSceneGetEntityIds(KittyCadBaseModel):
899+
""""""
900+
901+
data: SceneGetEntityIds
902+
903+
type: Literal["scene_get_entity_ids"] = "scene_get_entity_ids"
904+
905+
897906
class OptionCurveGetControlPoints(KittyCadBaseModel):
898907
""""""
899908

@@ -1376,6 +1385,7 @@ class OptionSetGridAutoScale(KittyCadBaseModel):
13761385
OptionSolid3dGetPrevAdjacentEdge,
13771386
OptionSolid3dGetCommonEdge,
13781387
OptionGetEntityType,
1388+
OptionSceneGetEntityIds,
13791389
OptionCurveGetControlPoints,
13801390
OptionProjectEntityToPlane,
13811391
OptionProjectPointsToPlane,
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from typing import List
2+
3+
from .base import KittyCadBaseModel
4+
5+
6+
class SceneGetEntityIds(KittyCadBaseModel):
7+
"""The response from the `SceneGetEntityIds` command."""
8+
9+
entity_ids: List[List[str]]

0 commit comments

Comments
 (0)