diff --git a/VERSION.txt b/VERSION.txt index cef10e9..66b2ead 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -v0.2.27 +v0.2.28 diff --git a/examples_test.go b/examples_test.go index 57b3a68..61d378a 100644 --- a/examples_test.go +++ b/examples_test.go @@ -558,46 +558,6 @@ func ExampleHiddenService_Logout() { } -// Cmd: Submit one modeling operation. -// Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type. -// -// Parameters -// -// - `body`: A graphics command submitted to the KittyCAD engine via the Modeling API. -func ExampleModelingService_Cmd() { - client, err := kittycad.NewClientFromEnv("your apps user agent") - if err != nil { - panic(err) - } - - result, err := client.Modeling.Cmd(kittycad.ModelingCmdReq{Cmd: "", CmdID: kittycad.ParseUUID("6ba7b810-9dad-11d1-80b4-00c04fd430c8")}) - if err != nil { - panic(err) - } - - fmt.Printf("%#v", result) - -} - -// CmdBatch: Submit many modeling operations. -// Parameters -// -// - `body`: A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API. -func ExampleModelingService_CmdBatch() { - client, err := kittycad.NewClientFromEnv("your apps user agent") - if err != nil { - panic(err) - } - - result, err := client.Modeling.CmdBatch(kittycad.ModelingCmdReqBatch{Cmds: map[string]kittycad.ModelingCmdReq{"example": {Cmd: "", CmdID: kittycad.ParseUUID("6ba7b810-9dad-11d1-80b4-00c04fd430c8")}}}) - if err != nil { - panic(err) - } - - fmt.Printf("%#v", result) - -} - // DeviceAuthRequest: Start an OAuth 2.0 Device Authorization Grant. // This endpoint is designed to be accessed from an *unauthenticated* API client. It generates and records a `device_code` and `user_code` which must be verified and confirmed prior to a token being granted. // @@ -1308,7 +1268,7 @@ func ExamplePaymentService_CreateInformationForUser() { panic(err) } - result, err := client.Payment.CreateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: "some-string", Country: "", State: "some-string", Street1: "some-string", Street2: "some-string", UserID: "some-string", Zip: "some-string"}, Name: "some-string", Phone: "+1-555-555-555"}) + result, err := client.Payment.CreateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: "some-string", Country: "some-string", State: "some-string", Street1: "some-string", Street2: "some-string", UserID: "some-string", Zip: "some-string"}, Name: "some-string", Phone: "+1-555-555-555"}) if err != nil { panic(err) } @@ -1330,7 +1290,7 @@ func ExamplePaymentService_UpdateInformationForUser() { panic(err) } - result, err := client.Payment.UpdateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: "some-string", Country: "", State: "some-string", Street1: "some-string", Street2: "some-string", UserID: "some-string", Zip: "some-string"}, Name: "some-string", Phone: "+1-555-555-555"}) + result, err := client.Payment.UpdateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: "some-string", Country: "some-string", State: "some-string", Street1: "some-string", Street2: "some-string", UserID: "some-string", Zip: "some-string"}, Name: "some-string", Phone: "+1-555-555-555"}) if err != nil { panic(err) } diff --git a/kittycad.go.patch.json b/kittycad.go.patch.json index 8e36693..349607c 100644 --- a/kittycad.go.patch.json +++ b/kittycad.go.patch.json @@ -191,22 +191,6 @@ "op": "add", "path": "/paths/~1logout/post/x-go" }, - { - "value": { - "example": "// Cmd: Submit one modeling operation.\n// \n// Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type.\n// \n// \n// Parameters\n// \n// \t- `body`: A graphics command submitted to the KittyCAD engine via the Modeling API.\n// \n// Cmd: Submit one modeling operation.\n// Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type.\n//\n// Parameters\n//\n// - `body`: A graphics command submitted to the KittyCAD engine via the Modeling API.\nfunc ExampleModelingService_Cmd() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tresult, err := client.Modeling.Cmd(kittycad.ModelingCmdReq{Cmd: \"\", CmdID: kittycad.ParseUUID(\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\")})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"%#v\", result)\n\n}\n", - "libDocsLink": "https://pkg.go.dev/github.com/kittycad/kittycad.go/#ModelingService.Cmd" - }, - "op": "add", - "path": "/paths/~1modeling~1cmd/post/x-go" - }, - { - "value": { - "example": "// CmdBatch: Submit many modeling operations.\n// \n// \n// Parameters\n// \n// \t- `body`: A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API.\n// \n// CmdBatch: Submit many modeling operations.\n// Parameters\n//\n// - `body`: A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API.\nfunc ExampleModelingService_CmdBatch() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tresult, err := client.Modeling.CmdBatch(kittycad.ModelingCmdReqBatch{Cmds: map[string]kittycad.ModelingCmdReq{\"example\": kittycad.ModelingCmdReq{Cmd: \"\", CmdID: kittycad.ParseUUID(\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\")}}})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"%#v\", result)\n\n}\n", - "libDocsLink": "https://pkg.go.dev/github.com/kittycad/kittycad.go/#ModelingService.CmdBatch" - }, - "op": "add", - "path": "/paths/~1modeling~1cmd-batch/post/x-go" - }, { "value": { "example": "// DeviceAuthRequest: Start an OAuth 2.0 Device Authorization Grant.\n// \n// This endpoint is designed to be accessed from an *unauthenticated* API client. It generates and records a `device_code` and `user_code` which must be verified and confirmed prior to a token being granted.\n// \n// \n// Parameters\n// \n// \t- `body`: The request parameters for the OAuth 2.0 Device Authorization Grant flow.\n// \n// DeviceAuthRequest: Start an OAuth 2.0 Device Authorization Grant.\n// This endpoint is designed to be accessed from an *unauthenticated* API client. It generates and records a `device_code` and `user_code` which must be verified and confirmed prior to a token being granted.\n//\n// Parameters\n//\n// - `body`: The request parameters for the OAuth 2.0 Device Authorization Grant flow.\nfunc ExampleOauth2Service_DeviceAuthRequest() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := client.Oauth2.DeviceAuthRequest(kittycad.DeviceAuthRequestForm{ClientID: kittycad.ParseUUID(\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\")}); err != nil {\n\t\tpanic(err)\n\t}\n\n}\n", @@ -489,7 +473,7 @@ }, { "value": { - "example": "// CreateInformationForUser: Create payment info for your user.\n// \n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.\n// \n// \n// Parameters\n// \n// \t- `body`: The billing information for payments.\n// \n// CreateInformationForUser: Create payment info for your user.\n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.\n//\n// Parameters\n//\n// - `body`: The billing information for payments.\nfunc ExamplePaymentService_CreateInformationForUser() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tresult, err := client.Payment.CreateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: \"some-string\", Country: \"\", State: \"some-string\", Street1: \"some-string\", Street2: \"some-string\", UserID: \"some-string\", Zip: \"some-string\"}, Name: \"some-string\", Phone: \"+1-555-555-555\"})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"%#v\", result)\n\n}\n", + "example": "// CreateInformationForUser: Create payment info for your user.\n// \n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.\n// \n// \n// Parameters\n// \n// \t- `body`: The billing information for payments.\n// \n// CreateInformationForUser: Create payment info for your user.\n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It creates the payment information for the authenticated user.\n//\n// Parameters\n//\n// - `body`: The billing information for payments.\nfunc ExamplePaymentService_CreateInformationForUser() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tresult, err := client.Payment.CreateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: \"some-string\", Country: \"some-string\", State: \"some-string\", Street1: \"some-string\", Street2: \"some-string\", UserID: \"some-string\", Zip: \"some-string\"}, Name: \"some-string\", Phone: \"+1-555-555-555\"})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"%#v\", result)\n\n}\n", "libDocsLink": "https://pkg.go.dev/github.com/kittycad/kittycad.go/#PaymentService.CreateInformationForUser" }, "op": "add", @@ -497,7 +481,7 @@ }, { "value": { - "example": "// UpdateInformationForUser: Update payment info for your user.\n// \n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.\n// \n// \n// Parameters\n// \n// \t- `body`: The billing information for payments.\n// \n// UpdateInformationForUser: Update payment info for your user.\n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.\n//\n// Parameters\n//\n// - `body`: The billing information for payments.\nfunc ExamplePaymentService_UpdateInformationForUser() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tresult, err := client.Payment.UpdateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: \"some-string\", Country: \"\", State: \"some-string\", Street1: \"some-string\", Street2: \"some-string\", UserID: \"some-string\", Zip: \"some-string\"}, Name: \"some-string\", Phone: \"+1-555-555-555\"})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"%#v\", result)\n\n}\n", + "example": "// UpdateInformationForUser: Update payment info for your user.\n// \n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.\n// \n// \n// Parameters\n// \n// \t- `body`: The billing information for payments.\n// \n// UpdateInformationForUser: Update payment info for your user.\n// This includes billing address, phone, and name.\n// This endpoint requires authentication by any KittyCAD user. It updates the payment information for the authenticated user.\n//\n// Parameters\n//\n// - `body`: The billing information for payments.\nfunc ExamplePaymentService_UpdateInformationForUser() {\n\tclient, err := kittycad.NewClientFromEnv(\"your apps user agent\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tresult, err := client.Payment.UpdateInformationForUser(kittycad.BillingInfo{Address: kittycad.NewAddress{City: \"some-string\", Country: \"some-string\", State: \"some-string\", Street1: \"some-string\", Street2: \"some-string\", UserID: \"some-string\", Zip: \"some-string\"}, Name: \"some-string\", Phone: \"+1-555-555-555\"})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"%#v\", result)\n\n}\n", "libDocsLink": "https://pkg.go.dev/github.com/kittycad/kittycad.go/#PaymentService.UpdateInformationForUser" }, "op": "add", diff --git a/paths.go b/paths.go index b2c22b1..b52b3c7 100644 --- a/paths.go +++ b/paths.go @@ -1189,108 +1189,6 @@ func (s *HiddenService) Logout() error { } -// Cmd: Submit one modeling operation. -// Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type. -// -// Parameters -// -// - `body`: A graphics command submitted to the KittyCAD engine via the Modeling API. -func (s *ModelingService) Cmd(body ModelingCmdReq) (*any, error) { - // Create the url. - path := "/modeling/cmd" - uri := resolveRelative(s.client.server, path) - - // Encode the request body as json. - b := new(bytes.Buffer) - if err := json.NewEncoder(b).Encode(body); err != nil { - return nil, fmt.Errorf("encoding json body request failed: %v", err) - } - - // Create the request. - req, err := http.NewRequest("POST", uri, b) - if err != nil { - return nil, fmt.Errorf("error creating request: %v", err) - } - - // Add our headers. - req.Header.Add("Content-Type", "application/json") - - // Send the request. - resp, err := s.client.client.Do(req) - if err != nil { - return nil, fmt.Errorf("error sending request: %v", err) - } - defer resp.Body.Close() - - // Check the response. - if err := checkResponse(resp); err != nil { - return nil, err - } - - // Decode the body from the response. - if resp.Body == nil { - return nil, errors.New("request returned an empty body in the response") - } - var decoded any - if err := json.NewDecoder(resp.Body).Decode(&decoded); err != nil { - return nil, fmt.Errorf("error decoding response body: %v", err) - } - - // Return the response. - return &decoded, nil - -} - -// CmdBatch: Submit many modeling operations. -// Parameters -// -// - `body`: A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API. -func (s *ModelingService) CmdBatch(body ModelingCmdReqBatch) (*ModelingOutcomes, error) { - // Create the url. - path := "/modeling/cmd-batch" - uri := resolveRelative(s.client.server, path) - - // Encode the request body as json. - b := new(bytes.Buffer) - if err := json.NewEncoder(b).Encode(body); err != nil { - return nil, fmt.Errorf("encoding json body request failed: %v", err) - } - - // Create the request. - req, err := http.NewRequest("POST", uri, b) - if err != nil { - return nil, fmt.Errorf("error creating request: %v", err) - } - - // Add our headers. - req.Header.Add("Content-Type", "application/json") - - // Send the request. - resp, err := s.client.client.Do(req) - if err != nil { - return nil, fmt.Errorf("error sending request: %v", err) - } - defer resp.Body.Close() - - // Check the response. - if err := checkResponse(resp); err != nil { - return nil, err - } - - // Decode the body from the response. - if resp.Body == nil { - return nil, errors.New("request returned an empty body in the response") - } - var decoded ModelingOutcomes - if err := json.NewDecoder(resp.Body).Decode(&decoded); err != nil { - return nil, fmt.Errorf("error decoding response body: %v", err) - } - - // Return the response. - return &decoded, nil - -} - // DeviceAuthRequest: Start an OAuth 2.0 Device Authorization Grant. // This endpoint is designed to be accessed from an *unauthenticated* API client. It generates and records a `device_code` and `user_code` which must be verified and confirmed prior to a token being granted. // diff --git a/spec.json b/spec.json index 6db68cb..0202c1a 100644 --- a/spec.json +++ b/spec.json @@ -211,6 +211,29 @@ ], "type": "object" }, + "Angle": { + "description": "An angle, with a specific unit.", + "properties": { + "unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitAngle" + } + ], + "description": "What unit is the measurement?" + }, + "value": { + "description": "The size of the angle, measured in the chosen unit.", + "format": "double", + "type": "number" + } + }, + "required": [ + "unit", + "value" + ], + "type": "object" + }, "AnnotationLineEnd": { "description": "Annotation line end type", "enum": [ @@ -546,8 +569,9 @@ "description": "The price of the API call.", "format": "money-usd", "nullable": true, - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "request_body": { "description": "The request body sent by the API call.", @@ -1664,10 +1688,99 @@ }, "type": "object" }, + "CenterOfMass": { + "description": "The center of mass response.", + "properties": { + "center_of_mass": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "The center of mass." + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "The output unit for the center of mass." + } + }, + "required": [ + "center_of_mass", + "output_unit" + ], + "type": "object" + }, + "ClientMetrics": { + "description": "ClientMetrics contains information regarding the state of the peer.", + "properties": { + "rtc_frames_decoded": { + "description": "Counter of the number of WebRTC frames that the client has decoded during this session.", + "format": "uint64", + "minimum": 0, + "type": "integer" + }, + "rtc_frames_dropped": { + "description": "Counter of the number of WebRTC frames the client has dropped during this session.", + "format": "uint32", + "minimum": 0, + "type": "integer" + }, + "rtc_frames_per_second": { + "description": "Current number of frames being rendered per second. A good target is 60 frames per second, but it can fluctuate depending on network conditions.", + "format": "uint8", + "minimum": 0, + "type": "integer" + }, + "rtc_frames_received": { + "description": "Counter of the number of WebRTC frames that the client has received during this session.", + "format": "uint64", + "minimum": 0, + "type": "integer" + }, + "rtc_freeze_count": { + "description": "Number of times the WebRTC playback has frozen. This is usually due to network conditions.", + "format": "uint32", + "minimum": 0, + "type": "integer" + }, + "rtc_jitter_sec": { + "description": "Amount of \"jitter\" in the WebRTC session. Network latency is the time it takes a packet to traverse the network. The amount that the latency varies is the jitter. Video latency is the time it takes to render a frame sent by the server (including network latency). A low jitter means the video latency can be reduced without impacting smooth playback. High jitter means clients will increase video latency to ensure smooth playback.", + "format": "float", + "type": "number" + }, + "rtc_keyframes_decoded": { + "description": "Number of \"key frames\" decoded in the underlying h.264 stream. A key frame is an expensive (bandwidth-wise) \"full image\" of the video frame. Data after the keyframe become -- effectively -- \"diff\" operations on that key frame. The Engine will only send a keyframe if required, which is an indication that some of the \"diffs\" have been lost, usually an indication of poor network conditions. We like this metric to understand times when the connection has had to recover.", + "format": "uint32", + "minimum": 0, + "type": "integer" + }, + "rtc_total_freezes_duration_sec": { + "description": "Number of seconds of frozen video the user has been subjected to.", + "format": "float", + "type": "number" + } + }, + "required": [ + "rtc_frames_decoded", + "rtc_frames_dropped", + "rtc_frames_per_second", + "rtc_frames_received", + "rtc_freeze_count", + "rtc_jitter_sec", + "rtc_keyframes_decoded", + "rtc_total_freezes_duration_sec" + ], + "type": "object" + }, "Cluster": { "description": "Cluster information.", "properties": { "addr": { + "default": null, "description": "The IP address of the cluster.", "nullable": true, "type": "string" @@ -1696,6 +1809,7 @@ "type": "integer" }, "urls": { + "default": [], "description": "The urls of the cluster.", "items": { "type": "string" @@ -1786,22 +1900,6 @@ ], "type": "object" }, - "Commit": { - "description": "Commit holds the Git-commit (SHA1) that a binary was built from, as reported in the version-string of external tools, such as `containerd`, or `runC`.", - "properties": { - "expected": { - "description": "Commit ID of external tool expected by dockerd as set at build time.", - "nullable": true, - "type": "string" - }, - "id": { - "description": "Actual commit ID of external tool.", - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, "Connection": { "description": "Metadata about a pub-sub connection.\n\nThis is mostly used for internal purposes and debugging.", "properties": { @@ -1818,10 +1916,12 @@ } ], "default": { + "addr": null, "auth_timeout": 0, "cluster_port": 0, "name": "", - "tls_timeout": 0 + "tls_timeout": 0, + "urls": [] }, "description": "Information about the cluster." }, @@ -1843,8 +1943,9 @@ "type": "integer" }, "cpu": { + "default": 0.0, + "description": "The CPU usage of the server.", "format": "double", - "nullable": true, "type": "number" }, "gateway": { @@ -1904,6 +2005,7 @@ "format": "int64", "type": "integer" }, + "description": "HTTP request statistics.", "type": "object" }, "https_port": { @@ -2132,3400 +2234,382 @@ "type": "object" }, "CountryCode": { - "description": "An enumeration of all ISO-3166 alpha-2 country codes.", - "oneOf": [ - { - "description": "Afghanistan", - "enum": [ - "AF" - ], + "description": "An ISO-3166 alpha-2 country code. Always uppercase.", + "type": "string" + }, + "Coupon": { + "description": "The resource representing a Coupon.", + "properties": { + "amount_off": { + "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.", + "format": "money-usd", + "nullable": true, + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", "type": "string" }, - { - "description": "Åland Islands", - "enum": [ - "AX" - ], - "type": "string" + "deleted": { + "default": false, + "description": "Always true for a deleted object.", + "type": "boolean" }, - { - "description": "Albania", - "enum": [ - "AL" - ], + "id": { + "description": "Unique identifier for the object.", "type": "string" }, + "percent_off": { + "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon.\n\nFor example, a coupon with percent_off of 50 will make a %s100 invoice %s50 instead.", + "format": "double", + "nullable": true, + "type": "number" + } + }, + "type": "object" + }, + "CreatedAtSortMode": { + "description": "Supported set of sort modes for scanning by created_at only.\n\nCurrently, we only support scanning in ascending order.", + "oneOf": [ { - "description": "Algeria", + "description": "Sort in increasing order of \"created_at\".", "enum": [ - "DZ" + "created_at_ascending" ], "type": "string" }, { - "description": "American Samoa", + "description": "Sort in decreasing order of \"created_at\".", "enum": [ - "AS" + "created_at_descending" ], "type": "string" - }, - { - "description": "Andorra", - "enum": [ - "AD" + } + ] + }, + "Currency": { + "description": "Currency is the list of supported currencies. Always lowercase.\n\nThis comes from the Stripe API docs: For more details see .", + "type": "string" + }, + "CurveGetControlPoints": { + "description": "The response from the `CurveGetControlPoints` command.", + "properties": { + "control_points": { + "description": "Control points in the curve.", + "items": { + "$ref": "#/components/schemas/Point3d" + }, + "type": "array" + } + }, + "required": [ + "control_points" + ], + "type": "object" + }, + "CurveGetEndPoints": { + "description": "Endpoints of a curve", + "properties": { + "end": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } ], - "type": "string" + "description": "End" }, - { - "description": "Angola", - "enum": [ - "AO" + "start": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } ], - "type": "string" - }, - { - "description": "Anguilla", - "enum": [ - "AI" + "description": "Start" + } + }, + "required": [ + "end", + "start" + ], + "type": "object" + }, + "CurveGetType": { + "description": "The response from the `CurveGetType` command.", + "properties": { + "curve_type": { + "allOf": [ + { + "$ref": "#/components/schemas/CurveType" + } ], - "type": "string" - }, - { - "description": "Antarctica", - "enum": [ - "AQ" + "description": "Curve type" + } + }, + "required": [ + "curve_type" + ], + "type": "object" + }, + "CurveType": { + "description": "The type of Curve (embedded within path)", + "enum": [ + "line", + "arc", + "nurbs" + ], + "type": "string" + }, + "Customer": { + "description": "The resource representing a payment \"Customer\".", + "properties": { + "address": { + "allOf": [ + { + "$ref": "#/components/schemas/NewAddress" + } ], - "type": "string" + "description": "The customer's address.", + "nullable": true }, - { - "description": "Antigua and Barbuda", - "enum": [ - "AG" - ], + "balance": { + "default": 0.0, + "description": "Current balance, if any, being stored on the customer in the payments service.\n\nIf negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", + "format": "money-usd", + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", "type": "string" }, - { - "description": "Argentina", - "enum": [ - "AR" - ], + "created_at": { + "description": "Time at which the object was created.", + "format": "date-time", "type": "string" }, - { - "description": "Armenia", - "enum": [ - "AM" + "currency": { + "allOf": [ + { + "$ref": "#/components/schemas/Currency" + } ], + "default": "usd", + "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes." + }, + "delinquent": { + "default": false, + "description": "When the customer's latest invoice is billed by charging automatically, `delinquent` is `true` if the invoice's latest charge failed.\n\nWhen the customer's latest invoice is billed by sending an invoice, `delinquent` is `true` if the invoice isn't paid by its due date. If an invoice is marked uncollectible by dunning, `delinquent` doesn't get reset to `false`.", + "type": "boolean" + }, + "email": { + "description": "The customer's email address.", + "format": "email", "type": "string" }, - { - "description": "Aruba", - "enum": [ - "AW" - ], + "id": { + "description": "Unique identifier for the object.", "type": "string" }, - { - "description": "Australia", - "enum": [ - "AU" - ], - "type": "string" - }, - { - "description": "Austria", - "enum": [ - "AT" - ], - "type": "string" - }, - { - "description": "Azerbaijan", - "enum": [ - "AZ" - ], - "type": "string" - }, - { - "description": "Bahamas", - "enum": [ - "BS" - ], - "type": "string" - }, - { - "description": "Bahrain", - "enum": [ - "BH" - ], - "type": "string" - }, - { - "description": "Bangladesh", - "enum": [ - "BD" - ], - "type": "string" - }, - { - "description": "Barbados", - "enum": [ - "BB" - ], - "type": "string" - }, - { - "description": "Belarus", - "enum": [ - "BY" - ], - "type": "string" - }, - { - "description": "Belgium", - "enum": [ - "BE" - ], - "type": "string" - }, - { - "description": "Belize", - "enum": [ - "BZ" - ], - "type": "string" - }, - { - "description": "Benin", - "enum": [ - "BJ" - ], - "type": "string" - }, - { - "description": "Bermuda", - "enum": [ - "BM" - ], - "type": "string" - }, - { - "description": "Bhutan", - "enum": [ - "BT" - ], - "type": "string" - }, - { - "description": "Bolivia (Plurinational State of)", - "enum": [ - "BO" - ], - "type": "string" - }, - { - "description": "Bonaire, Sint Eustatius and Saba", - "enum": [ - "BQ" - ], - "type": "string" - }, - { - "description": "Bosnia and Herzegovina", - "enum": [ - "BA" - ], - "type": "string" - }, - { - "description": "Botswana", - "enum": [ - "BW" - ], - "type": "string" - }, - { - "description": "Bouvet Island", - "enum": [ - "BV" - ], - "type": "string" - }, - { - "description": "Brazil", - "enum": [ - "BR" - ], - "type": "string" - }, - { - "description": "British Indian Ocean Territory", - "enum": [ - "IO" - ], - "type": "string" - }, - { - "description": "Brunei Darussalam", - "enum": [ - "BN" - ], - "type": "string" - }, - { - "description": "Bulgaria", - "enum": [ - "BG" - ], - "type": "string" - }, - { - "description": "Burkina Faso", - "enum": [ - "BF" - ], - "type": "string" - }, - { - "description": "Burundi", - "enum": [ - "BI" - ], - "type": "string" - }, - { - "description": "Cabo Verde", - "enum": [ - "CV" - ], - "type": "string" - }, - { - "description": "Cambodia", - "enum": [ - "KH" - ], - "type": "string" - }, - { - "description": "Cameroon", - "enum": [ - "CM" - ], - "type": "string" - }, - { - "description": "Canada", - "enum": [ - "CA" - ], - "type": "string" - }, - { - "description": "Cayman Islands", - "enum": [ - "KY" - ], - "type": "string" - }, - { - "description": "Central African Republic", - "enum": [ - "CF" - ], - "type": "string" - }, - { - "description": "Chad", - "enum": [ - "TD" - ], - "type": "string" - }, - { - "description": "Chile", - "enum": [ - "CL" - ], - "type": "string" - }, - { - "description": "China", - "enum": [ - "CN" - ], - "type": "string" - }, - { - "description": "Christmas Island", - "enum": [ - "CX" - ], - "type": "string" - }, - { - "description": "Cocos (Keeling) Islands", - "enum": [ - "CC" - ], - "type": "string" - }, - { - "description": "Colombia", - "enum": [ - "CO" - ], - "type": "string" - }, - { - "description": "Comoros", - "enum": [ - "KM" - ], - "type": "string" - }, - { - "description": "Congo", - "enum": [ - "CG" - ], - "type": "string" - }, - { - "description": "Congo (Democratic Republic of the)", - "enum": [ - "CD" - ], - "type": "string" - }, - { - "description": "Cook Islands", - "enum": [ - "CK" - ], - "type": "string" - }, - { - "description": "Costa Rica", - "enum": [ - "CR" - ], - "type": "string" - }, - { - "description": "Côte d'Ivoire", - "enum": [ - "CI" - ], - "type": "string" - }, - { - "description": "Croatia", - "enum": [ - "HR" - ], - "type": "string" - }, - { - "description": "Cuba", - "enum": [ - "CU" - ], - "type": "string" - }, - { - "description": "Curaçao", - "enum": [ - "CW" - ], - "type": "string" - }, - { - "description": "Cyprus", - "enum": [ - "CY" - ], - "type": "string" - }, - { - "description": "Czechia", - "enum": [ - "CZ" - ], - "type": "string" - }, - { - "description": "Denmark", - "enum": [ - "DK" - ], - "type": "string" - }, - { - "description": "Djibouti", - "enum": [ - "DJ" - ], - "type": "string" - }, - { - "description": "Dominica", - "enum": [ - "DM" - ], - "type": "string" - }, - { - "description": "Dominican Republic", - "enum": [ - "DO" - ], - "type": "string" - }, - { - "description": "Ecuador", - "enum": [ - "EC" - ], - "type": "string" - }, - { - "description": "Egypt", - "enum": [ - "EG" - ], - "type": "string" - }, - { - "description": "El Salvador", - "enum": [ - "SV" - ], - "type": "string" - }, - { - "description": "Equatorial Guinea", - "enum": [ - "GQ" - ], - "type": "string" - }, - { - "description": "Eritrea", - "enum": [ - "ER" - ], - "type": "string" - }, - { - "description": "Estonia", - "enum": [ - "EE" - ], - "type": "string" - }, - { - "description": "Ethiopia", - "enum": [ - "ET" - ], - "type": "string" - }, - { - "description": "Falkland Islands (Malvinas)", - "enum": [ - "FK" - ], - "type": "string" - }, - { - "description": "Faroe Islands", - "enum": [ - "FO" - ], - "type": "string" - }, - { - "description": "Fiji", - "enum": [ - "FJ" - ], - "type": "string" - }, - { - "description": "Finland", - "enum": [ - "FI" - ], - "type": "string" - }, - { - "description": "France", - "enum": [ - "FR" - ], - "type": "string" - }, - { - "description": "French Guiana", - "enum": [ - "GF" - ], - "type": "string" - }, - { - "description": "French Polynesia", - "enum": [ - "PF" - ], - "type": "string" - }, - { - "description": "French Southern Territories", - "enum": [ - "TF" - ], - "type": "string" - }, - { - "description": "Gabon", - "enum": [ - "GA" - ], - "type": "string" - }, - { - "description": "Gambia", - "enum": [ - "GM" - ], - "type": "string" - }, - { - "description": "Georgia", - "enum": [ - "GE" - ], - "type": "string" - }, - { - "description": "Germany", - "enum": [ - "DE" - ], - "type": "string" - }, - { - "description": "Ghana", - "enum": [ - "GH" - ], - "type": "string" - }, - { - "description": "Gibraltar", - "enum": [ - "GI" - ], - "type": "string" - }, - { - "description": "Greece", - "enum": [ - "GR" - ], - "type": "string" - }, - { - "description": "Greenland", - "enum": [ - "GL" - ], - "type": "string" - }, - { - "description": "Grenada", - "enum": [ - "GD" - ], - "type": "string" - }, - { - "description": "Guadeloupe", - "enum": [ - "GP" - ], - "type": "string" - }, - { - "description": "Guam", - "enum": [ - "GU" - ], - "type": "string" - }, - { - "description": "Guatemala", - "enum": [ - "GT" - ], - "type": "string" - }, - { - "description": "Guernsey", - "enum": [ - "GG" - ], - "type": "string" - }, - { - "description": "Guinea", - "enum": [ - "GN" - ], - "type": "string" - }, - { - "description": "Guinea-Bissau", - "enum": [ - "GW" - ], - "type": "string" - }, - { - "description": "Guyana", - "enum": [ - "GY" - ], - "type": "string" - }, - { - "description": "Haiti", - "enum": [ - "HT" - ], - "type": "string" - }, - { - "description": "Heard Island and McDonald Islands", - "enum": [ - "HM" - ], - "type": "string" - }, - { - "description": "Holy See", - "enum": [ - "VA" - ], - "type": "string" - }, - { - "description": "Honduras", - "enum": [ - "HN" - ], - "type": "string" - }, - { - "description": "Hong Kong", - "enum": [ - "HK" - ], - "type": "string" - }, - { - "description": "Hungary", - "enum": [ - "HU" - ], - "type": "string" - }, - { - "description": "Iceland", - "enum": [ - "IS" - ], - "type": "string" - }, - { - "description": "India", - "enum": [ - "IN" - ], - "type": "string" - }, - { - "description": "Indonesia", - "enum": [ - "ID" - ], - "type": "string" - }, - { - "description": "Iran (Islamic Republic of)", - "enum": [ - "IR" - ], - "type": "string" - }, - { - "description": "Iraq", - "enum": [ - "IQ" - ], - "type": "string" - }, - { - "description": "Ireland", - "enum": [ - "IE" - ], - "type": "string" - }, - { - "description": "Isle of Man", - "enum": [ - "IM" - ], - "type": "string" - }, - { - "description": "Israel", - "enum": [ - "IL" - ], - "type": "string" - }, - { - "description": "Italy", - "enum": [ - "IT" - ], - "type": "string" - }, - { - "description": "Jamaica", - "enum": [ - "JM" - ], - "type": "string" - }, - { - "description": "Japan", - "enum": [ - "JP" - ], - "type": "string" - }, - { - "description": "Jersey", - "enum": [ - "JE" - ], - "type": "string" - }, - { - "description": "Jordan", - "enum": [ - "JO" - ], - "type": "string" - }, - { - "description": "Kazakhstan", - "enum": [ - "KZ" - ], - "type": "string" - }, - { - "description": "Kenya", - "enum": [ - "KE" - ], - "type": "string" - }, - { - "description": "Kiribati", - "enum": [ - "KI" - ], - "type": "string" - }, - { - "description": "Korea (Democratic People's Republic of)", - "enum": [ - "KP" - ], - "type": "string" - }, - { - "description": "Korea (Republic of)", - "enum": [ - "KR" - ], - "type": "string" - }, - { - "description": "Kuwait", - "enum": [ - "KW" - ], - "type": "string" - }, - { - "description": "Kyrgyzstan", - "enum": [ - "KG" - ], - "type": "string" - }, - { - "description": "Lao People's Democratic Republic", - "enum": [ - "LA" - ], - "type": "string" - }, - { - "description": "Latvia", - "enum": [ - "LV" - ], - "type": "string" - }, - { - "description": "Lebanon", - "enum": [ - "LB" - ], - "type": "string" - }, - { - "description": "Lesotho", - "enum": [ - "LS" - ], - "type": "string" - }, - { - "description": "Liberia", - "enum": [ - "LR" - ], - "type": "string" - }, - { - "description": "Libya", - "enum": [ - "LY" - ], - "type": "string" - }, - { - "description": "Liechtenstein", - "enum": [ - "LI" - ], - "type": "string" - }, - { - "description": "Lithuania", - "enum": [ - "LT" - ], - "type": "string" - }, - { - "description": "Luxembourg", - "enum": [ - "LU" - ], - "type": "string" - }, - { - "description": "Macao", - "enum": [ - "MO" - ], - "type": "string" - }, - { - "description": "Macedonia (the former Yugoslav Republic of)", - "enum": [ - "MK" - ], - "type": "string" - }, - { - "description": "Madagascar", - "enum": [ - "MG" - ], - "type": "string" - }, - { - "description": "Malawi", - "enum": [ - "MW" - ], - "type": "string" - }, - { - "description": "Malaysia", - "enum": [ - "MY" - ], - "type": "string" - }, - { - "description": "Maldives", - "enum": [ - "MV" - ], - "type": "string" - }, - { - "description": "Mali", - "enum": [ - "ML" - ], - "type": "string" - }, - { - "description": "Malta", - "enum": [ - "MT" - ], - "type": "string" - }, - { - "description": "Marshall Islands", - "enum": [ - "MH" - ], - "type": "string" - }, - { - "description": "Martinique", - "enum": [ - "MQ" - ], - "type": "string" - }, - { - "description": "Mauritania", - "enum": [ - "MR" - ], - "type": "string" - }, - { - "description": "Mauritius", - "enum": [ - "MU" - ], - "type": "string" - }, - { - "description": "Mayotte", - "enum": [ - "YT" - ], - "type": "string" - }, - { - "description": "Mexico", - "enum": [ - "MX" - ], - "type": "string" - }, - { - "description": "Micronesia (Federated States of)", - "enum": [ - "FM" - ], - "type": "string" - }, - { - "description": "Moldova (Republic of)", - "enum": [ - "MD" - ], - "type": "string" - }, - { - "description": "Monaco", - "enum": [ - "MC" - ], - "type": "string" - }, - { - "description": "Mongolia", - "enum": [ - "MN" - ], - "type": "string" - }, - { - "description": "Montenegro", - "enum": [ - "ME" - ], - "type": "string" - }, - { - "description": "Montserrat", - "enum": [ - "MS" - ], - "type": "string" - }, - { - "description": "Morocco", - "enum": [ - "MA" - ], - "type": "string" - }, - { - "description": "Mozambique", - "enum": [ - "MZ" - ], - "type": "string" - }, - { - "description": "Myanmar", - "enum": [ - "MM" - ], - "type": "string" - }, - { - "description": "Namibia", - "enum": [ - "NA" - ], - "type": "string" - }, - { - "description": "Nauru", - "enum": [ - "NR" - ], - "type": "string" - }, - { - "description": "Nepal", - "enum": [ - "NP" - ], - "type": "string" - }, - { - "description": "Netherlands", - "enum": [ - "NL" - ], - "type": "string" - }, - { - "description": "New Caledonia", - "enum": [ - "NC" - ], - "type": "string" - }, - { - "description": "New Zealand", - "enum": [ - "NZ" - ], - "type": "string" - }, - { - "description": "Nicaragua", - "enum": [ - "NI" - ], - "type": "string" - }, - { - "description": "Niger", - "enum": [ - "NE" - ], - "type": "string" - }, - { - "description": "Nigeria", - "enum": [ - "NG" - ], - "type": "string" - }, - { - "description": "Niue", - "enum": [ - "NU" - ], - "type": "string" - }, - { - "description": "Norfolk Island", - "enum": [ - "NF" - ], - "type": "string" - }, - { - "description": "Northern Mariana Islands", - "enum": [ - "MP" - ], - "type": "string" - }, - { - "description": "Norway", - "enum": [ - "NO" - ], - "type": "string" - }, - { - "description": "Oman", - "enum": [ - "OM" - ], - "type": "string" - }, - { - "description": "Pakistan", - "enum": [ - "PK" - ], - "type": "string" - }, - { - "description": "Palau", - "enum": [ - "PW" - ], - "type": "string" - }, - { - "description": "Palestine, State of", - "enum": [ - "PS" - ], - "type": "string" - }, - { - "description": "Panama", - "enum": [ - "PA" - ], - "type": "string" - }, - { - "description": "Papua New Guinea", - "enum": [ - "PG" - ], - "type": "string" - }, - { - "description": "Paraguay", - "enum": [ - "PY" - ], - "type": "string" - }, - { - "description": "Peru", - "enum": [ - "PE" - ], - "type": "string" - }, - { - "description": "Philippines", - "enum": [ - "PH" - ], - "type": "string" - }, - { - "description": "Pitcairn", - "enum": [ - "PN" - ], - "type": "string" - }, - { - "description": "Poland", - "enum": [ - "PL" - ], - "type": "string" - }, - { - "description": "Portugal", - "enum": [ - "PT" - ], - "type": "string" - }, - { - "description": "Puerto Rico", - "enum": [ - "PR" - ], - "type": "string" - }, - { - "description": "Qatar", - "enum": [ - "QA" - ], - "type": "string" - }, - { - "description": "Réunion", - "enum": [ - "RE" - ], - "type": "string" - }, - { - "description": "Romania", - "enum": [ - "RO" - ], - "type": "string" - }, - { - "description": "Russian Federation", - "enum": [ - "RU" - ], - "type": "string" - }, - { - "description": "Rwanda", - "enum": [ - "RW" - ], - "type": "string" - }, - { - "description": "Saint Barthélemy", - "enum": [ - "BL" - ], - "type": "string" - }, - { - "description": "Saint Helena, Ascension and Tristan da Cunha", - "enum": [ - "SH" - ], - "type": "string" - }, - { - "description": "Saint Kitts and Nevis", - "enum": [ - "KN" - ], - "type": "string" - }, - { - "description": "Saint Lucia", - "enum": [ - "LC" - ], - "type": "string" - }, - { - "description": "Saint Martin (French part)", - "enum": [ - "MF" - ], - "type": "string" - }, - { - "description": "Saint Pierre and Miquelon", - "enum": [ - "PM" - ], - "type": "string" - }, - { - "description": "Saint Vincent and the Grenadines", - "enum": [ - "VC" - ], - "type": "string" - }, - { - "description": "Samoa", - "enum": [ - "WS" - ], - "type": "string" - }, - { - "description": "San Marino", - "enum": [ - "SM" - ], - "type": "string" - }, - { - "description": "Sao Tome and Principe", - "enum": [ - "ST" - ], - "type": "string" - }, - { - "description": "Saudi Arabia", - "enum": [ - "SA" - ], - "type": "string" - }, - { - "description": "Senegal", - "enum": [ - "SN" - ], - "type": "string" - }, - { - "description": "Serbia", - "enum": [ - "RS" - ], - "type": "string" - }, - { - "description": "Seychelles", - "enum": [ - "SC" - ], - "type": "string" - }, - { - "description": "Sierra Leone", - "enum": [ - "SL" - ], - "type": "string" - }, - { - "description": "Singapore", - "enum": [ - "SG" - ], - "type": "string" - }, - { - "description": "Sint Maarten (Dutch part)", - "enum": [ - "SX" - ], - "type": "string" - }, - { - "description": "Slovakia", - "enum": [ - "SK" - ], - "type": "string" - }, - { - "description": "Slovenia", - "enum": [ - "SI" - ], - "type": "string" - }, - { - "description": "Solomon Islands", - "enum": [ - "SB" - ], - "type": "string" - }, - { - "description": "Somalia", - "enum": [ - "SO" - ], - "type": "string" - }, - { - "description": "South Africa", - "enum": [ - "ZA" - ], - "type": "string" - }, - { - "description": "South Georgia and the South Sandwich Islands", - "enum": [ - "GS" - ], - "type": "string" - }, - { - "description": "South Sudan", - "enum": [ - "SS" - ], - "type": "string" - }, - { - "description": "Spain", - "enum": [ - "ES" - ], - "type": "string" - }, - { - "description": "Sri Lanka", - "enum": [ - "LK" - ], - "type": "string" - }, - { - "description": "Sudan", - "enum": [ - "SD" - ], - "type": "string" - }, - { - "description": "Suriname", - "enum": [ - "SR" - ], - "type": "string" - }, - { - "description": "Svalbard and Jan Mayen", - "enum": [ - "SJ" - ], - "type": "string" - }, - { - "description": "Swaziland", - "enum": [ - "SZ" - ], - "type": "string" - }, - { - "description": "Sweden", - "enum": [ - "SE" - ], - "type": "string" - }, - { - "description": "Switzerland", - "enum": [ - "CH" - ], - "type": "string" - }, - { - "description": "Syrian Arab Republic", - "enum": [ - "SY" - ], - "type": "string" - }, - { - "description": "Taiwan, Province of China", - "enum": [ - "TW" - ], - "type": "string" - }, - { - "description": "Tajikistan", - "enum": [ - "TJ" - ], - "type": "string" - }, - { - "description": "Tanzania, United Republic of", - "enum": [ - "TZ" - ], - "type": "string" - }, - { - "description": "Thailand", - "enum": [ - "TH" - ], - "type": "string" - }, - { - "description": "Timor-Leste", - "enum": [ - "TL" - ], - "type": "string" - }, - { - "description": "Togo", - "enum": [ - "TG" - ], - "type": "string" - }, - { - "description": "Tokelau", - "enum": [ - "TK" - ], - "type": "string" - }, - { - "description": "Tonga", - "enum": [ - "TO" - ], - "type": "string" - }, - { - "description": "Trinidad and Tobago", - "enum": [ - "TT" - ], - "type": "string" - }, - { - "description": "Tunisia", - "enum": [ - "TN" - ], - "type": "string" - }, - { - "description": "Turkey", - "enum": [ - "TR" - ], - "type": "string" - }, - { - "description": "Turkmenistan", - "enum": [ - "TM" - ], - "type": "string" - }, - { - "description": "Turks and Caicos Islands", - "enum": [ - "TC" - ], - "type": "string" - }, - { - "description": "Tuvalu", - "enum": [ - "TV" - ], - "type": "string" - }, - { - "description": "Uganda", - "enum": [ - "UG" - ], - "type": "string" - }, - { - "description": "Ukraine", - "enum": [ - "UA" - ], - "type": "string" - }, - { - "description": "United Arab Emirates", - "enum": [ - "AE" - ], - "type": "string" - }, - { - "description": "United Kingdom of Great Britain and Northern Ireland", - "enum": [ - "GB" - ], - "type": "string" - }, - { - "description": "United States of America", - "enum": [ - "US" - ], - "type": "string" - }, - { - "description": "United States Minor Outlying Islands", - "enum": [ - "UM" - ], - "type": "string" - }, - { - "description": "Uruguay", - "enum": [ - "UY" - ], - "type": "string" - }, - { - "description": "Uzbekistan", - "enum": [ - "UZ" - ], - "type": "string" - }, - { - "description": "Vanuatu", - "enum": [ - "VU" - ], - "type": "string" - }, - { - "description": "Venezuela (Bolivarian Republic of)", - "enum": [ - "VE" - ], - "type": "string" - }, - { - "description": "Viet Nam", - "enum": [ - "VN" - ], - "type": "string" - }, - { - "description": "Virgin Islands (British)", - "enum": [ - "VG" - ], - "type": "string" - }, - { - "description": "Virgin Islands (U.S.)", - "enum": [ - "VI" - ], - "type": "string" - }, - { - "description": "Wallis and Futuna", - "enum": [ - "WF" - ], - "type": "string" - }, - { - "description": "Western Sahara", - "enum": [ - "EH" - ], - "type": "string" - }, - { - "description": "Yemen", - "enum": [ - "YE" - ], - "type": "string" - }, - { - "description": "Zambia", - "enum": [ - "ZM" - ], - "type": "string" - }, - { - "description": "Zimbabwe", - "enum": [ - "ZW" - ], - "type": "string" - } - ] - }, - "Coupon": { - "description": "The resource representing a Coupon.", - "properties": { - "amount_off": { - "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.", - "format": "money-usd", - "nullable": true, - "title": "Number", - "type": "number" - }, - "deleted": { - "default": false, - "description": "Always true for a deleted object.", - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "type": "string" - }, - "percent_off": { - "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon.\n\nFor example, a coupon with percent_off of 50 will make a %s100 invoice %s50 instead.", - "format": "double", - "nullable": true, - "type": "number" - } - }, - "type": "object" - }, - "CreatedAtSortMode": { - "description": "Supported set of sort modes for scanning by created_at only.\n\nCurrently, we only support scanning in ascending order.", - "oneOf": [ - { - "description": "Sort in increasing order of \"created_at\".", - "enum": [ - "created_at_ascending" - ], - "type": "string" - }, - { - "description": "Sort in decreasing order of \"created_at\".", - "enum": [ - "created_at_descending" - ], - "type": "string" - } - ] - }, - "Currency": { - "description": "Currency is the list of supported currencies.\n\nThis comes from the Stripe API docs: For more details see .", - "oneOf": [ - { - "description": "United Arab Emirates Dirham", - "enum": [ - "aed" - ], - "type": "string" - }, - { - "description": "Afghan Afghani", - "enum": [ - "afn" - ], - "type": "string" - }, - { - "description": "Albanian Lek", - "enum": [ - "all" - ], - "type": "string" - }, - { - "description": "Armenian Dram", - "enum": [ - "amd" - ], - "type": "string" - }, - { - "description": "Netherlands Antillean Gulden", - "enum": [ - "ang" - ], - "type": "string" - }, - { - "description": "Angolan Kwanza", - "enum": [ - "aoa" - ], - "type": "string" - }, - { - "description": "Argentine Peso", - "enum": [ - "ars" - ], - "type": "string" - }, - { - "description": "Australian Dollar", - "enum": [ - "aud" - ], - "type": "string" - }, - { - "description": "Aruban Florin", - "enum": [ - "awg" - ], - "type": "string" - }, - { - "description": "Azerbaijani Manat", - "enum": [ - "azn" - ], - "type": "string" - }, - { - "description": "Bosnia & Herzegovina Convertible Mark", - "enum": [ - "bam" - ], - "type": "string" - }, - { - "description": "Barbadian Dollar", - "enum": [ - "bbd" - ], - "type": "string" - }, - { - "description": "Bangladeshi Taka", - "enum": [ - "bdt" - ], - "type": "string" - }, - { - "description": "Bulgarian Lev", - "enum": [ - "bgn" - ], - "type": "string" - }, - { - "description": "Burundian Franc", - "enum": [ - "bif" - ], - "type": "string" - }, - { - "description": "Bermudian Dollar", - "enum": [ - "bmd" - ], - "type": "string" - }, - { - "description": "Brunei Dollar", - "enum": [ - "bnd" - ], - "type": "string" - }, - { - "description": "Bolivian Boliviano", - "enum": [ - "bob" - ], - "type": "string" - }, - { - "description": "Brazilian Real", - "enum": [ - "brl" - ], - "type": "string" - }, - { - "description": "Bahamian Dollar", - "enum": [ - "bsd" - ], - "type": "string" - }, - { - "description": "Botswana Pula", - "enum": [ - "bwp" - ], - "type": "string" - }, - { - "description": "Belize Dollar", - "enum": [ - "bzd" - ], - "type": "string" - }, - { - "description": "Canadian Dollar", - "enum": [ - "cad" - ], - "type": "string" - }, - { - "description": "Congolese Franc", - "enum": [ - "cdf" - ], - "type": "string" - }, - { - "description": "Swiss Franc", - "enum": [ - "chf" - ], - "type": "string" - }, - { - "description": "Chilean Peso", - "enum": [ - "clp" - ], - "type": "string" - }, - { - "description": "Chinese Renminbi Yuan", - "enum": [ - "cny" - ], - "type": "string" - }, - { - "description": "Colombian Peso", - "enum": [ - "cop" - ], - "type": "string" - }, - { - "description": "Costa Rican Colón", - "enum": [ - "crc" - ], - "type": "string" - }, - { - "description": "Cape Verdean Escudo", - "enum": [ - "cve" - ], - "type": "string" - }, - { - "description": "Czech Koruna", - "enum": [ - "czk" - ], - "type": "string" - }, - { - "description": "Djiboutian Franc", - "enum": [ - "djf" - ], - "type": "string" - }, - { - "description": "Danish Krone", - "enum": [ - "dkk" - ], - "type": "string" - }, - { - "description": "Dominican Peso", - "enum": [ - "dop" - ], - "type": "string" - }, - { - "description": "Algerian Dinar", - "enum": [ - "dzd" - ], - "type": "string" - }, - { - "description": "Estonian Kroon", - "enum": [ - "eek" - ], - "type": "string" - }, - { - "description": "Egyptian Pound", - "enum": [ - "egp" - ], - "type": "string" - }, - { - "description": "Ethiopian Birr", - "enum": [ - "etb" - ], - "type": "string" - }, - { - "description": "Euro", - "enum": [ - "eur" - ], - "type": "string" - }, - { - "description": "Fijian Dollar", - "enum": [ - "fjd" - ], - "type": "string" - }, - { - "description": "Falkland Islands Pound", - "enum": [ - "fkp" - ], - "type": "string" - }, - { - "description": "British Pound", - "enum": [ - "gbp" - ], - "type": "string" - }, - { - "description": "Georgian Lari", - "enum": [ - "gel" - ], - "type": "string" - }, - { - "description": "Gibraltar Pound", - "enum": [ - "gip" - ], - "type": "string" - }, - { - "description": "Gambian Dalasi", - "enum": [ - "gmd" - ], - "type": "string" - }, - { - "description": "Guinean Franc", - "enum": [ - "gnf" - ], - "type": "string" - }, - { - "description": "Guatemalan Quetzal", - "enum": [ - "gtq" - ], - "type": "string" - }, - { - "description": "Guyanese Dollar", - "enum": [ - "gyd" - ], - "type": "string" - }, - { - "description": "Hong Kong Dollar", - "enum": [ - "hkd" - ], - "type": "string" - }, - { - "description": "Honduran Lempira", - "enum": [ - "hnl" - ], - "type": "string" - }, - { - "description": "Croatian Kuna", - "enum": [ - "hrk" - ], - "type": "string" - }, - { - "description": "Haitian Gourde", - "enum": [ - "htg" - ], - "type": "string" - }, - { - "description": "Hungarian Forint", - "enum": [ - "huf" - ], - "type": "string" - }, - { - "description": "Indonesian Rupiah", - "enum": [ - "idr" - ], - "type": "string" - }, - { - "description": "Israeli New Sheqel", - "enum": [ - "ils" - ], - "type": "string" - }, - { - "description": "Indian Rupee", - "enum": [ - "inr" - ], - "type": "string" - }, - { - "description": "Icelandic Króna", - "enum": [ - "isk" - ], - "type": "string" - }, - { - "description": "Jamaican Dollar", - "enum": [ - "jmd" - ], - "type": "string" - }, - { - "description": "Japanese Yen", - "enum": [ - "jpy" - ], - "type": "string" - }, - { - "description": "Kenyan Shilling", - "enum": [ - "kes" - ], - "type": "string" - }, - { - "description": "Kyrgyzstani Som", - "enum": [ - "kgs" - ], - "type": "string" - }, - { - "description": "Cambodian Riel", - "enum": [ - "khr" - ], - "type": "string" - }, - { - "description": "Comorian Franc", - "enum": [ - "kmf" - ], - "type": "string" - }, - { - "description": "South Korean Won", - "enum": [ - "krw" - ], - "type": "string" - }, - { - "description": "Cayman Islands Dollar", - "enum": [ - "kyd" - ], - "type": "string" - }, - { - "description": "Kazakhstani Tenge", - "enum": [ - "kzt" - ], - "type": "string" - }, - { - "description": "Lao Kip", - "enum": [ - "lak" - ], - "type": "string" - }, - { - "description": "Lebanese Pound", - "enum": [ - "lbp" - ], - "type": "string" - }, - { - "description": "Sri Lankan Rupee", - "enum": [ - "lkr" - ], - "type": "string" - }, - { - "description": "Liberian Dollar", - "enum": [ - "lrd" - ], - "type": "string" - }, - { - "description": "Lesotho Loti", - "enum": [ - "lsl" - ], - "type": "string" - }, - { - "description": "Lithuanian Litas", - "enum": [ - "ltl" - ], - "type": "string" - }, - { - "description": "Latvian Lats", - "enum": [ - "lvl" - ], - "type": "string" - }, - { - "description": "Moroccan Dirham", - "enum": [ - "mad" - ], - "type": "string" - }, - { - "description": "Moldovan Leu", - "enum": [ - "mdl" - ], - "type": "string" - }, - { - "description": "Malagasy Ariary", - "enum": [ - "mga" - ], - "type": "string" - }, - { - "description": "Macedonian Denar", - "enum": [ - "mkd" - ], - "type": "string" - }, - { - "description": "Mongolian Tögrög", - "enum": [ - "mnt" - ], - "type": "string" - }, - { - "description": "Macanese Pataca", - "enum": [ - "mop" - ], - "type": "string" - }, - { - "description": "Mauritanian Ouguiya", - "enum": [ - "mro" - ], - "type": "string" - }, - { - "description": "Mauritian Rupee", - "enum": [ - "mur" - ], - "type": "string" - }, - { - "description": "Maldivian Rufiyaa", - "enum": [ - "mvr" - ], - "type": "string" - }, - { - "description": "Malawian Kwacha", - "enum": [ - "mwk" - ], - "type": "string" - }, - { - "description": "Mexican Peso", - "enum": [ - "mxn" - ], - "type": "string" - }, - { - "description": "Malaysian Ringgit", - "enum": [ - "myr" - ], - "type": "string" - }, - { - "description": "Mozambican Metical", - "enum": [ - "mzn" - ], - "type": "string" - }, - { - "description": "Namibian Dollar", - "enum": [ - "nad" - ], - "type": "string" - }, - { - "description": "Nigerian Naira", - "enum": [ - "ngn" - ], - "type": "string" - }, - { - "description": "Nicaraguan Córdoba", - "enum": [ - "nio" - ], - "type": "string" - }, - { - "description": "Norwegian Krone", - "enum": [ - "nok" - ], - "type": "string" - }, - { - "description": "Nepalese Rupee", - "enum": [ - "npr" - ], - "type": "string" - }, - { - "description": "New Zealand Dollar", - "enum": [ - "nzd" - ], - "type": "string" - }, - { - "description": "Panamanian Balboa", - "enum": [ - "pab" - ], - "type": "string" - }, - { - "description": "Peruvian Nuevo Sol", - "enum": [ - "pen" - ], - "type": "string" - }, - { - "description": "Papua New Guinean Kina", - "enum": [ - "pgk" - ], - "type": "string" - }, - { - "description": "Philippine Peso", - "enum": [ - "php" - ], - "type": "string" - }, - { - "description": "Pakistani Rupee", - "enum": [ - "pkr" - ], - "type": "string" - }, - { - "description": "Polish Złoty", - "enum": [ - "pln" - ], - "type": "string" - }, - { - "description": "Paraguayan Guaraní", - "enum": [ - "pyg" - ], - "type": "string" - }, - { - "description": "Qatari Riyal", - "enum": [ - "qar" - ], - "type": "string" - }, - { - "description": "Romanian Leu", - "enum": [ - "ron" - ], - "type": "string" - }, - { - "description": "Serbian Dinar", - "enum": [ - "rsd" - ], - "type": "string" - }, - { - "description": "Russian Ruble", - "enum": [ - "rub" - ], - "type": "string" - }, - { - "description": "Rwandan Franc", - "enum": [ - "rwf" - ], - "type": "string" - }, - { - "description": "Saudi Riyal", - "enum": [ - "sar" - ], - "type": "string" - }, - { - "description": "Solomon Islands Dollar", - "enum": [ - "sbd" - ], - "type": "string" - }, - { - "description": "Seychellois Rupee", - "enum": [ - "scr" - ], - "type": "string" - }, - { - "description": "Swedish Krona", - "enum": [ - "sek" - ], - "type": "string" - }, - { - "description": "Singapore Dollar", - "enum": [ - "sgd" - ], - "type": "string" - }, - { - "description": "Saint Helenian Pound", - "enum": [ - "shp" - ], - "type": "string" - }, - { - "description": "Sierra Leonean Leone", - "enum": [ - "sll" - ], - "type": "string" - }, - { - "description": "Somali Shilling", - "enum": [ - "sos" - ], - "type": "string" - }, - { - "description": "Surinamese Dollar", - "enum": [ - "srd" - ], - "type": "string" - }, - { - "description": "São Tomé and Príncipe Dobra", - "enum": [ - "std" - ], - "type": "string" - }, - { - "description": "Salvadoran Colón", - "enum": [ - "svc" - ], - "type": "string" - }, - { - "description": "Swazi Lilangeni", - "enum": [ - "szl" - ], - "type": "string" - }, - { - "description": "Thai Baht", - "enum": [ - "thb" - ], - "type": "string" - }, - { - "description": "Tajikistani Somoni", - "enum": [ - "tjs" - ], - "type": "string" - }, - { - "description": "Tongan Paʻanga", - "enum": [ - "top" - ], - "type": "string" - }, - { - "description": "Turkish Lira", - "enum": [ - "try" - ], - "type": "string" - }, - { - "description": "Trinidad and Tobago Dollar", - "enum": [ - "ttd" - ], - "type": "string" - }, - { - "description": "New Taiwan Dollar", - "enum": [ - "twd" - ], - "type": "string" - }, - { - "description": "Tanzanian Shilling", - "enum": [ - "tzs" - ], - "type": "string" - }, - { - "description": "Ukrainian Hryvnia", - "enum": [ - "uah" - ], - "type": "string" - }, - { - "description": "Ugandan Shilling", - "enum": [ - "ugx" - ], - "type": "string" - }, - { - "description": "United States Dollar", - "enum": [ - "usd" - ], - "type": "string" - }, - { - "description": "Uruguayan Peso", - "enum": [ - "uyu" - ], - "type": "string" - }, - { - "description": "Uzbekistani Som", - "enum": [ - "uzs" - ], - "type": "string" - }, - { - "description": "Venezuelan Bolívar", - "enum": [ - "vef" - ], - "type": "string" - }, - { - "description": "Vietnamese Đồng", - "enum": [ - "vnd" - ], - "type": "string" - }, - { - "description": "Vanuatu Vatu", - "enum": [ - "vuv" - ], - "type": "string" - }, - { - "description": "Samoan Tala", - "enum": [ - "wst" - ], - "type": "string" - }, - { - "description": "Central African Cfa Franc", - "enum": [ - "xaf" - ], - "type": "string" - }, - { - "description": "East Caribbean Dollar", - "enum": [ - "xcd" - ], - "type": "string" - }, - { - "description": "West African Cfa Franc", - "enum": [ - "xof" - ], - "type": "string" - }, - { - "description": "Cfp Franc", - "enum": [ - "xpf" - ], - "type": "string" - }, - { - "description": "Yemeni Rial", - "enum": [ - "yer" - ], - "type": "string" - }, - { - "description": "South African Rand", - "enum": [ - "zar" - ], - "type": "string" - }, - { - "description": "Zambian Kwacha", - "enum": [ - "zmw" - ], - "type": "string" - } - ] - }, - "CurveGetControlPoints": { - "description": "The response from the `CurveGetControlPoints` command.", - "properties": { - "control_points": { - "description": "Control points in the curve.", - "items": { - "$ref": "#/components/schemas/Point3d" - }, - "type": "array" - } - }, - "required": [ - "control_points" - ], - "type": "object" - }, - "CurveGetType": { - "description": "The response from the `CurveGetType` command.", - "properties": { - "curve_type": { - "allOf": [ - { - "$ref": "#/components/schemas/CurveType" - } - ], - "description": "Curve type" - } - }, - "required": [ - "curve_type" - ], - "type": "object" - }, - "CurveType": { - "description": "The type of Curve (embedded within path)", - "enum": [ - "line", - "nurbs" - ], - "type": "string" - }, - "Customer": { - "description": "The resource representing a payment \"Customer\".", - "properties": { - "address": { - "allOf": [ - { - "$ref": "#/components/schemas/NewAddress" - } - ], - "description": "The customer's address.", - "nullable": true - }, - "balance": { - "default": 0.0, - "description": "Current balance, if any, being stored on the customer in the payments service.\n\nIf negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.", - "format": "money-usd", - "title": "Number", - "type": "number" - }, - "created_at": { - "description": "Time at which the object was created.", - "format": "date-time", - "type": "string" - }, - "currency": { - "allOf": [ - { - "$ref": "#/components/schemas/Currency" - } - ], - "default": "usd", - "description": "Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes." - }, - "delinquent": { - "default": false, - "description": "When the customer's latest invoice is billed by charging automatically, `delinquent` is `true` if the invoice's latest charge failed.\n\nWhen the customer's latest invoice is billed by sending an invoice, `delinquent` is `true` if the invoice isn't paid by its due date. If an invoice is marked uncollectible by dunning, `delinquent` doesn't get reset to `false`.", - "type": "boolean" - }, - "email": { - "description": "The customer's email address.", - "format": "email", - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "default": {}, - "description": "Set of key-value pairs.", - "type": "object" - }, - "name": { - "description": "The customer's full name or business name.", - "type": "string" - }, - "phone": { - "default": "", - "description": "The customer's phone number.", - "format": "phone", - "title": "String", - "type": "string" - } - }, - "required": [ - "created_at" - ], - "type": "object" - }, - "CustomerBalance": { - "description": "A balance for a user.\n\nThis holds information about the financial balance for the user.", - "properties": { - "created_at": { - "description": "The date and time the balance was created.", - "format": "date-time", - "title": "DateTime", - "type": "string" - }, - "id": { - "allOf": [ - { - "$ref": "#/components/schemas/Uuid" - } - ], - "description": "The unique identifier for the balance." - }, - "monthly_credits_remaining": { - "description": "The monthy credits remaining in the balance. This gets re-upped every month, but if the credits are not used for a month they do not carry over to the next month. It is a stable amount granted to the user per month.", - "format": "money-usd", - "title": "Number", - "type": "number" - }, - "pre_pay_cash_remaining": { - "description": "The amount of pre-pay cash remaining in the balance. This number goes down as the user uses their pre-paid credits. The reason we track this amount is if a user ever wants to withdraw their pre-pay cash, we can use this amount to determine how much to give them. Say a user has $100 in pre-paid cash, their bill is worth, $50 after subtracting any other credits (like monthly etc.) Their bill is $50, their pre-pay cash remaining will be subtracted by 50 to pay the bill and their `pre_pay_credits_remaining` will be subtracted by 50 to pay the bill. This way if they want to withdraw money after, they can only withdraw $50 since that is the amount of cash they have remaining.", - "format": "money-usd", - "title": "Number", - "type": "number" - }, - "pre_pay_credits_remaining": { - "description": "The amount of credits remaining in the balance. This is typically the amount of cash * some multiplier they get for pre-paying their account. This number lowers every time a bill is paid with the balance. This number increases every time a user adds funds to their balance. This may be through a subscription or a one off payment.", - "format": "money-usd", - "title": "Number", - "type": "number" - }, - "total_due": { - "description": "This includes any outstanding, draft, or open invoices and any pending invoice items. This does not include any credits the user has on their account.", - "format": "money-usd", - "title": "Number", - "type": "number" - }, - "updated_at": { - "description": "The date and time the balance was last updated.", - "format": "date-time", - "title": "DateTime", - "type": "string" - }, - "user_id": { - "description": "The user ID the balance belongs to.", - "type": "string" - } - }, - "required": [ - "created_at", - "id", - "monthly_credits_remaining", - "pre_pay_cash_remaining", - "pre_pay_credits_remaining", - "total_due", - "updated_at" - ], - "type": "object" - }, - "DeviceAccessTokenRequestForm": { - "description": "The form for a device access token request.", - "properties": { - "client_id": { - "description": "The client ID.", - "format": "uuid", - "type": "string" - }, - "device_code": { - "description": "The device code.", - "format": "uuid", - "type": "string" - }, - "grant_type": { - "allOf": [ - { - "$ref": "#/components/schemas/OAuth2GrantType" - } - ], - "description": "The grant type." - } - }, - "required": [ - "client_id", - "device_code", - "grant_type" - ], - "type": "object" - }, - "DeviceAuthRequestForm": { - "description": "The request parameters for the OAuth 2.0 Device Authorization Grant flow.", - "properties": { - "client_id": { - "description": "The client ID.", - "format": "uuid", - "type": "string" - } - }, - "required": [ - "client_id" - ], - "type": "object" - }, - "DeviceAuthVerifyParams": { - "description": "The request parameters to verify the `user_code` for the OAuth 2.0 Device Authorization Grant.", - "properties": { - "user_code": { - "description": "The user code.", - "type": "string" - } - }, - "required": [ - "user_code" - ], - "type": "object" - }, - "Direction": { - "description": "Specifies the sign of a co-ordinate axis.", - "oneOf": [ - { - "description": "Increasing numbers.", - "enum": [ - "positive" - ], + "metadata": { + "additionalProperties": { + "type": "string" + }, + "default": {}, + "description": "Set of key-value pairs.", + "type": "object" + }, + "name": { + "description": "The customer's full name or business name.", "type": "string" }, - { - "description": "Decreasing numbers.", - "enum": [ - "negative" - ], + "phone": { + "default": "", + "description": "The customer's phone number.", + "format": "phone", + "title": "String", "type": "string" } - ] - }, - "Discount": { - "description": "The resource representing a Discount.", - "properties": { - "coupon": { - "allOf": [ - { - "$ref": "#/components/schemas/Coupon" - } - ], - "description": "The coupon that applied to create this discount." - } }, "required": [ - "coupon" + "created_at" ], "type": "object" }, - "DockerSystemInfo": { - "description": "Docker system info.", + "CustomerBalance": { + "description": "A balance for a user.\n\nThis holds information about the financial balance for the user.", "properties": { - "architecture": { - "description": "Hardware architecture of the host, as returned by the Go runtime (`GOARCH`). A full list of possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment).", - "nullable": true, - "type": "string" - }, - "bridge_nf_ip6tables": { - "description": "Indicates if `bridge-nf-call-ip6tables` is available on the host.", - "nullable": true, - "type": "boolean" - }, - "bridge_nf_iptables": { - "description": "Indicates if `bridge-nf-call-iptables` is available on the host.", - "nullable": true, - "type": "boolean" - }, - "cgroup_driver": { - "allOf": [ - { - "$ref": "#/components/schemas/SystemInfoCgroupDriverEnum" - } - ], - "description": "The driver to use for managing cgroups.", - "nullable": true - }, - "cgroup_version": { - "allOf": [ - { - "$ref": "#/components/schemas/SystemInfoCgroupVersionEnum" - } - ], - "description": "The version of the cgroup.", - "nullable": true - }, - "cluster_advertise": { - "description": "The network endpoint that the Engine advertises for the purpose of node discovery. ClusterAdvertise is a `host:port` combination on which the daemon is reachable by other hosts.\n\n**Deprecated**: This field is only propagated when using standalone Swarm mode, and overlay networking using an external k/v store. Overlay networks with Swarm mode enabled use the built-in raft store, and this field will be empty.", - "nullable": true, - "type": "string" - }, - "cluster_store": { - "description": "URL of the distributed storage backend. The storage backend is used for multihost networking (to store network and endpoint information) and by the node discovery mechanism.\n\n**Deprecated**: This field is only propagated when using standalone Swarm mode, and overlay networking using an external k/v store. Overlay networks with Swarm mode enabled use the built-in raft store, and this field will be empty.", - "nullable": true, - "type": "string" - }, - "containerd_commit": { - "allOf": [ - { - "$ref": "#/components/schemas/Commit" - } - ], - "nullable": true - }, - "containers": { - "description": "Total number of containers on the host.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "containers_paused": { - "description": "Number of containers with status `\\\"paused\\\"`.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "containers_running": { - "description": "Number of containers with status `\\\"running\\\"`.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "containers_stopped": { - "description": "Number of containers with status `\\\"stopped\\\"`.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "cpu_cfs_period": { - "description": "Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host.", - "nullable": true, - "type": "boolean" - }, - "cpu_cfs_quota": { - "description": "Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host.", - "nullable": true, - "type": "boolean" - }, - "cpu_set": { - "description": "Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host. See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt)", - "nullable": true, - "type": "boolean" - }, - "cpu_shares": { - "description": "Indicates if CPU Shares limiting is supported by the host.", - "nullable": true, - "type": "boolean" - }, - "debug": { - "description": "Indicates if the daemon is running in debug-mode / with debug-level logging enabled.", - "nullable": true, - "type": "boolean" - }, - "default_address_pools": { - "description": "List of custom default address pools for local networks, which can be specified in the daemon.json file or dockerd option. Example: a Base \\\"10.10.0.0/16\\\" with Size 24 will define the set of 256 10.10.[0-255].0/24 address pools.", - "items": { - "$ref": "#/components/schemas/SystemInfoDefaultAddressPools" - }, - "type": "array" - }, - "default_runtime": { - "description": "Name of the default OCI runtime that is used when starting containers. The default can be overridden per-container at create time.", - "nullable": true, - "type": "string" - }, - "docker_root_dir": { - "description": "Root directory of persistent Docker state. Defaults to `/var/lib/docker` on Linux, and `C:\\\\ProgramData\\\\docker` on Windows.", - "nullable": true, - "type": "string" - }, - "driver": { - "description": "Name of the storage driver in use.", - "nullable": true, - "type": "string" - }, - "driver_status": { - "description": "Information specific to the storage driver, provided as \\\"label\\\" / \\\"value\\\" pairs. This information is provided by the storage driver, and formatted in a way consistent with the output of `docker info` on the command line.\n\n**Note**: The information returned in this field, including the formatting of values and labels, should not be considered stable, and may change without notice.", - "items": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "array" - }, - "experimental_build": { - "description": "Indicates if experimental features are enabled on the daemon.", - "nullable": true, - "type": "boolean" - }, - "http_proxy": { - "description": "HTTP-proxy configured for the daemon. This value is obtained from the [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL are masked in the API response. Containers do not automatically inherit this configuration.", - "nullable": true, - "type": "string" - }, - "https_proxy": { - "description": "HTTPS-proxy configured for the daemon. This value is obtained from the [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL are masked in the API response. Containers do not automatically inherit this configuration.", - "nullable": true, + "created_at": { + "description": "The date and time the balance was created.", + "format": "date-time", + "title": "DateTime", "type": "string" }, "id": { - "description": "Unique identifier of the daemon.\n\n**Note**: The format of the ID itself is not part of the API, and should not be considered stable.", - "nullable": true, - "type": "string" - }, - "images": { - "description": "Total number of images on the host. Both _tagged_ and _untagged_ (dangling) images are counted.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "index_server_address": { - "description": "Address / URL of the index server that is used for image search, and as a default for user authentication for Docker Hub and Docker Cloud.", - "nullable": true, - "type": "string" - }, - "init_binary": { - "description": "Name and, optional, path of the `docker-init` binary. If the path is omitted, the daemon searches the host's `$PATH` for the binary and uses the first result.", - "nullable": true, - "type": "string" - }, - "init_commit": { "allOf": [ { - "$ref": "#/components/schemas/Commit" - } - ], - "nullable": true - }, - "ipv4_forwarding": { - "description": "Indicates IPv4 forwarding is enabled.", - "nullable": true, - "type": "boolean" - }, - "isolation": { - "allOf": [ - { - "$ref": "#/components/schemas/SystemInfoIsolationEnum" + "$ref": "#/components/schemas/Uuid" } ], - "description": "Represents the isolation technology to use as a default for containers. The supported values are platform-specific. If no isolation value is specified on daemon start, on Windows client, the default is `hyperv`, and on Windows server, the default is `process`. This option is currently not used on other platforms.", - "nullable": true - }, - "kernel_memory": { - "description": "Indicates if the host has kernel memory limit support enabled.\n\n**Deprecated**: This field is deprecated as the kernel 5.4 deprecated `kmem.limit_in_bytes`.", - "nullable": true, - "type": "boolean" - }, - "kernel_memory_tcp": { - "description": "Indicates if the host has kernel memory TCP limit support enabled. Kernel memory TCP limits are not supported when using cgroups v2, which does not support the corresponding `memory.kmem.tcp.limit_in_bytes` cgroup.", - "nullable": true, - "type": "boolean" - }, - "kernel_version": { - "description": "Kernel version of the host. On Linux, this information obtained from `uname`. On Windows this information is queried from the HKEY_LOCAL_MACHINE\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows NT\\\\\\\\CurrentVersion\\\\\\\\ registry value, for example _\\\"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)\\\"_.", - "nullable": true, - "type": "string" - }, - "labels": { - "description": "User-defined labels (key/value metadata) as set on the daemon.\n\n**Note**: When part of a Swarm, nodes can both have _daemon_ labels, set through the daemon configuration, and _node_ labels, set from a manager node in the Swarm. Node labels are not included in this field. Node labels can be retrieved using the `/nodes/(id)` endpoint on a manager node in the Swarm.", - "items": { - "type": "string" - }, - "type": "array" - }, - "live_restore_enabled": { - "description": "Indicates if live restore is enabled. If enabled, containers are kept running when the daemon is shutdown or upon daemon start if running containers are detected.", - "nullable": true, - "type": "boolean" + "description": "The unique identifier for the balance." }, - "logging_driver": { - "description": "The logging driver to use as a default for new containers.", - "nullable": true, + "monthly_credits_remaining": { + "description": "The monthy credits remaining in the balance. This gets re-upped every month, but if the credits are not used for a month they do not carry over to the next month. It is a stable amount granted to the user per month.", + "format": "money-usd", + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", "type": "string" }, - "mem_total": { - "description": "Total amount of physical memory available on the host, in bytes.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "memory_limit": { - "description": "Indicates if the host has memory limit support enabled.", - "nullable": true, - "type": "boolean" - }, - "n_events_listener": { - "description": "Number of event listeners subscribed.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "n_fd": { - "description": "The total number of file Descriptors in use by the daemon process. This information is only returned if debug-mode is enabled.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "name": { - "description": "Hostname of the host.", - "nullable": true, + "pre_pay_cash_remaining": { + "description": "The amount of pre-pay cash remaining in the balance. This number goes down as the user uses their pre-paid credits. The reason we track this amount is if a user ever wants to withdraw their pre-pay cash, we can use this amount to determine how much to give them. Say a user has $100 in pre-paid cash, their bill is worth, $50 after subtracting any other credits (like monthly etc.) Their bill is $50, their pre-pay cash remaining will be subtracted by 50 to pay the bill and their `pre_pay_credits_remaining` will be subtracted by 50 to pay the bill. This way if they want to withdraw money after, they can only withdraw $50 since that is the amount of cash they have remaining.", + "format": "money-usd", + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", "type": "string" }, - "ncpu": { - "description": "The number of logical CPUs usable by the daemon. The number of available CPUs is checked by querying the operating system when the daemon starts. Changes to operating system CPU allocation after the daemon is started are not reflected.", - "format": "int64", - "nullable": true, - "type": "integer" - }, - "no_proxy": { - "description": "Comma-separated list of domain extensions for which no proxy should be used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. Containers do not automatically inherit this configuration.", - "nullable": true, + "pre_pay_credits_remaining": { + "description": "The amount of credits remaining in the balance. This is typically the amount of cash * some multiplier they get for pre-paying their account. This number lowers every time a bill is paid with the balance. This number increases every time a user adds funds to their balance. This may be through a subscription or a one off payment.", + "format": "money-usd", + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", "type": "string" }, - "oom_kill_disable": { - "description": "Indicates if OOM killer disable is supported on the host.", - "nullable": true, - "type": "boolean" - }, - "operating_system": { - "description": "Name of the host's operating system, for example: \\\"Ubuntu 16.04.2 LTS\\\" or \\\"Windows Server 2016 Datacenter\\\"", - "nullable": true, + "total_due": { + "description": "This includes any outstanding, draft, or open invoices and any pending invoice items. This does not include any credits the user has on their account.", + "format": "money-usd", + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", "type": "string" }, - "os_type": { - "description": "Generic type of the operating system of the host, as returned by the Go runtime (`GOOS`). Currently returned values are \\\"linux\\\" and \\\"windows\\\". A full list of possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment).", - "nullable": true, + "updated_at": { + "description": "The date and time the balance was last updated.", + "format": "date-time", + "title": "DateTime", "type": "string" }, - "os_version": { - "description": "Version of the host's operating system\n\n**Note**: The information returned in this field, including its very existence, and the formatting of values, should not be considered stable, and may change without notice.", - "nullable": true, + "user_id": { + "description": "The user ID the balance belongs to.", "type": "string" + } + }, + "required": [ + "created_at", + "id", + "monthly_credits_remaining", + "pre_pay_cash_remaining", + "pre_pay_credits_remaining", + "total_due", + "updated_at" + ], + "type": "object" + }, + "Density": { + "description": "The density response.", + "properties": { + "density": { + "description": "The density.", + "format": "double", + "type": "number" }, - "pids_limit": { - "description": "Indicates if the host kernel has PID limit support enabled.", - "nullable": true, - "type": "boolean" - }, - "plugins": { + "output_unit": { "allOf": [ { - "$ref": "#/components/schemas/PluginsInfo" + "$ref": "#/components/schemas/UnitDensity" } ], - "nullable": true + "description": "The output unit for the density." + } + }, + "required": [ + "density", + "output_unit" + ], + "type": "object" + }, + "DeviceAccessTokenRequestForm": { + "description": "The form for a device access token request.", + "properties": { + "client_id": { + "description": "The client ID.", + "format": "uuid", + "type": "string" }, - "product_license": { - "description": "Reports a summary of the product license on the daemon. If a commercial license has been applied to the daemon, information such as number of nodes, and expiration are included.", - "nullable": true, + "device_code": { + "description": "The device code.", + "format": "uuid", "type": "string" }, - "registry_config": { + "grant_type": { "allOf": [ { - "$ref": "#/components/schemas/RegistryServiceConfig" + "$ref": "#/components/schemas/OAuth2GrantType" } ], - "nullable": true + "description": "The grant type." + } + }, + "required": [ + "client_id", + "device_code", + "grant_type" + ], + "type": "object" + }, + "DeviceAuthRequestForm": { + "description": "The request parameters for the OAuth 2.0 Device Authorization Grant flow.", + "properties": { + "client_id": { + "description": "The client ID.", + "format": "uuid", + "type": "string" + } + }, + "required": [ + "client_id" + ], + "type": "object" + }, + "DeviceAuthVerifyParams": { + "description": "The request parameters to verify the `user_code` for the OAuth 2.0 Device Authorization Grant.", + "properties": { + "user_code": { + "description": "The user code.", + "type": "string" + } + }, + "required": [ + "user_code" + ], + "type": "object" + }, + "Direction": { + "description": "Specifies the sign of a co-ordinate axis.", + "oneOf": [ + { + "description": "Increasing numbers.", + "enum": [ + "positive" + ], + "type": "string" }, - "runc_commit": { + { + "description": "Decreasing numbers.", + "enum": [ + "negative" + ], + "type": "string" + } + ] + }, + "Discount": { + "description": "The resource representing a Discount.", + "properties": { + "coupon": { "allOf": [ { - "$ref": "#/components/schemas/Commit" + "$ref": "#/components/schemas/Coupon" } ], - "nullable": true - }, - "runtimes": { - "additionalProperties": { - "$ref": "#/components/schemas/Runtime" - }, - "type": "object" - }, - "security_options": { - "description": "List of security features that are enabled on the daemon, such as apparmor, seccomp, SELinux, user-namespaces (userns), and rootless. Additional configuration options for each security feature may be present, and are included as a comma-separated list of key/value pairs.", - "items": { - "type": "string" - }, - "type": "array" - }, - "server_version": { - "description": "Version string of the daemon. **Note**: the [standalone Swarm API](https://docs.docker.com/swarm/swarm-api/) returns the Swarm version instead of the daemon version, for example `swarm/1.2.8`.", - "nullable": true, - "type": "string" - }, - "swap_limit": { - "description": "Indicates if the host has memory swap limit support enabled.", - "nullable": true, - "type": "boolean" - }, - "system_time": { - "description": "The number of goroutines that currently exist. This information is only returned if debug-mode is enabled.", - "nullable": true, - "type": "string" - }, - "warnings": { - "description": "List of warnings / informational messages about missing features, or issues related to the daemon configuration. These messages can be printed by the client as information to the user.", - "items": { - "type": "string" - }, - "type": "array" + "description": "The coupon that applied to create this discount." } }, + "required": [ + "coupon" + ], "type": "object" }, "EmailAuthenticationForm": { @@ -5548,60 +2632,6 @@ ], "type": "object" }, - "EngineMetadata": { - "description": "Metadata about our currently running server.\n\nThis is mostly used for internal purposes and debugging.", - "properties": { - "async_jobs_running": { - "description": "If any async job is currently running.", - "type": "boolean" - }, - "cache": { - "allOf": [ - { - "$ref": "#/components/schemas/CacheMetadata" - } - ], - "description": "Metadata about our cache." - }, - "environment": { - "allOf": [ - { - "$ref": "#/components/schemas/Environment" - } - ], - "description": "The environment we are running in." - }, - "fs": { - "allOf": [ - { - "$ref": "#/components/schemas/FileSystemMetadata" - } - ], - "description": "Metadata about our file system." - }, - "git_hash": { - "description": "The git hash of the server.", - "type": "string" - }, - "pubsub": { - "allOf": [ - { - "$ref": "#/components/schemas/Connection" - } - ], - "description": "Metadata about our pub-sub connection." - } - }, - "required": [ - "async_jobs_running", - "cache", - "environment", - "fs", - "git_hash", - "pubsub" - ], - "type": "object" - }, "EntityGetAllChildUuids": { "description": "The response from the `EntityGetAllChildUuids` command.", "properties": { @@ -5753,6 +2783,20 @@ ], "type": "string" }, + { + "description": "Client sent invalid BSON.", + "enum": [ + "invalid_bson" + ], + "type": "string" + }, + { + "description": "Client sent a message which is not accepted over this protocol.", + "enum": [ + "wrong_protocol" + ], + "type": "string" + }, { "description": "Problem sending data between client and KittyCAD API.", "enum": [ @@ -5776,37 +2820,6 @@ } ] }, - "ExecutorMetadata": { - "description": "Metadata about our currently running server.\n\nThis is mostly used for internal purposes and debugging.", - "properties": { - "docker_info": { - "allOf": [ - { - "$ref": "#/components/schemas/DockerSystemInfo" - } - ], - "description": "Information about the docker daemon." - }, - "environment": { - "allOf": [ - { - "$ref": "#/components/schemas/Environment" - } - ], - "description": "The environment we are running in." - }, - "git_hash": { - "description": "The git hash of the server.", - "type": "string" - } - }, - "required": [ - "docker_info", - "environment", - "git_hash" - ], - "type": "object" - }, "Export": { "description": "The response from the `Export` endpoint.", "properties": { @@ -6866,32 +3879,41 @@ ], "type": "string" }, - "IndexInfo": { - "description": "IndexInfo contains information about a registry.", + "ImportFile": { + "description": "File to import into the current model", "properties": { - "mirrors": { - "description": "List of mirrors, expressed as URIs.", + "data": { + "description": "The raw bytes of the file", "items": { - "type": "string" + "format": "uint8", + "minimum": 0, + "type": "integer" }, "type": "array" }, - "name": { - "description": "Name of the registry, such as \\\"docker.io\\\".", - "nullable": true, + "path": { + "description": "The file's full path, including file extension.", + "type": "string" + } + }, + "required": [ + "data", + "path" + ], + "type": "object" + }, + "ImportFiles": { + "description": "Data from importing the files", + "properties": { + "object_id": { + "description": "ID of the imported 3D models within the scene.", + "format": "uuid", "type": "string" - }, - "official": { - "description": "Indicates whether this is an official registry (i.e., Docker Hub / docker.io)", - "nullable": true, - "type": "boolean" - }, - "secure": { - "description": "Indicates if the registry is part of the list of insecure registries. If `false`, the registry is insecure. Insecure registries accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from unknown CAs) communication.\n\n**Warning**: Insecure registries can be useful when running a local registry. However, because its use creates security vulnerabilities it should ONLY be enabled for testing purposes. For increased security, users should add their CA to their system's list of trusted CAs instead of enabling this option.", - "nullable": true, - "type": "boolean" } }, + "required": [ + "object_id" + ], "type": "object" }, "InputFormat": { @@ -6950,7 +3972,7 @@ "$ref": "#/components/schemas/UnitLength" } ], - "description": "The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc." + "description": "The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc.\n\nDefaults to meters." } }, "required": [ @@ -7065,22 +4087,25 @@ "default": 0.0, "description": "Final amount due at this time for this invoice.\n\nIf the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "amount_paid": { "default": 0.0, "description": "The amount, in USD, that was paid.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "amount_remaining": { "default": 0.0, "description": "The amount remaining, in USD, that is due.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "attempt_count": { "default": 0, @@ -7187,22 +4212,25 @@ "default": 0.0, "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied.\n\nItem discounts are already incorporated.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "tax": { "default": 0.0, "description": "The amount of tax on this invoice.\n\nThis is the sum of all the tax amounts on this invoice.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "total": { "default": 0.0, "description": "Total after discounts and taxes.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "url": { "description": "The URL for the hosted invoice page, which allows customers to view and pay an invoice.", @@ -7223,8 +4251,9 @@ "default": 0.0, "description": "The amount, in USD.", "format": "money-usd", - "title": "Number", - "type": "number" + "pattern": "^-?[0-9]+(\\.[0-9]+)?$", + "title": "Decimal", + "type": "string" }, "currency": { "allOf": [ @@ -7495,6 +4524,29 @@ }, "type": "object" }, + "Mass": { + "description": "The mass response.", + "properties": { + "mass": { + "description": "The mass.", + "format": "double", + "type": "number" + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitMass" + } + ], + "description": "The output unit for the mass." + } + }, + "required": [ + "mass", + "output_unit" + ], + "type": "object" + }, "Mesh": { "properties": { "mesh": { @@ -7539,14 +4591,6 @@ ], "description": "Metadata about our cache." }, - "engine": { - "allOf": [ - { - "$ref": "#/components/schemas/EngineMetadata" - } - ], - "description": "Metadata about our engine API connection." - }, "environment": { "allOf": [ { @@ -7555,14 +4599,6 @@ ], "description": "The environment we are running in." }, - "executor": { - "allOf": [ - { - "$ref": "#/components/schemas/ExecutorMetadata" - } - ], - "description": "Metadata about our executor API connection." - }, "fs": { "allOf": [ { @@ -7594,9 +4630,7 @@ }, "required": [ "cache", - "engine", "environment", - "executor", "fs", "git_hash", "point_e", @@ -8072,13 +5106,21 @@ }, "type": "array" }, - "format": { + "format": { + "allOf": [ + { + "$ref": "#/components/schemas/OutputFormat" + } + ], + "description": "The file format to export to." + }, + "source_unit": { "allOf": [ { - "$ref": "#/components/schemas/OutputFormat" + "$ref": "#/components/schemas/UnitLength" } ], - "description": "The file format to export to." + "description": "Select the unit interpretation of exported objects.\n\nThis is not the same as the export units. Setting export units is part of the format options." }, "type": { "enum": [ @@ -8090,6 +5132,7 @@ "required": [ "entity_ids", "format", + "source_unit", "type" ], "type": "object" @@ -8790,7 +5833,7 @@ }, "size": { "description": "What should the plane's span/extent? When rendered visually, this is both the width and height along X and Y axis respectively.", - "format": "float", + "format": "double", "type": "number" }, "type": { @@ -9093,6 +6136,36 @@ ], "type": "object" }, + { + "description": "Get curves for vertices within a path", + "properties": { + "path_id": { + "description": "Which path to query", + "format": "uuid", + "type": "string" + }, + "type": { + "enum": [ + "path_get_curve_uuids_for_vertices" + ], + "type": "string" + }, + "vertex_ids": { + "description": "IDs of the vertices for which to obtain curve ids from", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "path_id", + "type", + "vertex_ids" + ], + "type": "object" + }, { "description": "Start dragging mouse.", "properties": { @@ -9196,156 +6269,363 @@ "type" ], "type": "object" - } - ] - }, - "ModelingCmdId": { - "description": "All commands have unique IDs. These should be randomly generated.", - "format": "uuid", - "type": "string" - }, - "ModelingCmdReq": { - "description": "A graphics command submitted to the KittyCAD engine via the Modeling API.", - "properties": { - "cmd": { - "allOf": [ - { - "$ref": "#/components/schemas/ModelingCmd" + }, + { + "description": "Utility method. Performs both a ray cast and projection to plane-local coordinates. Returns the plane coordinates for the given window coordinates.", + "properties": { + "plane_id": { + "description": "The plane you're intersecting against.", + "format": "uuid", + "type": "string" + }, + "type": { + "enum": [ + "plane_intersect_and_project" + ], + "type": "string" + }, + "window": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "Window coordinates where the ray cast should be aimed." } + }, + "required": [ + "plane_id", + "type", + "window" ], - "description": "Which command to submit to the Kittycad engine." + "type": "object" }, - "cmd_id": { - "allOf": [ - { - "$ref": "#/components/schemas/ModelingCmdId" + { + "description": "Find the start and end of a curve.", + "properties": { + "curve_id": { + "description": "ID of the curve being queried.", + "format": "uuid", + "type": "string" + }, + "type": { + "enum": [ + "curve_get_end_points" + ], + "type": "string" } + }, + "required": [ + "curve_id", + "type" ], - "description": "ID of command being submitted." - } - }, - "required": [ - "cmd", - "cmd_id" - ], - "type": "object" - }, - "ModelingCmdReqBatch": { - "description": "A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API.", - "properties": { - "cmds": { - "additionalProperties": { - "$ref": "#/components/schemas/ModelingCmdReq" + "type": "object" + }, + { + "description": "Reconfigure the stream.", + "properties": { + "fps": { + "description": "Frames per second.", + "format": "uint32", + "minimum": 0, + "type": "integer" + }, + "height": { + "description": "Height of the stream.", + "format": "uint32", + "minimum": 0, + "type": "integer" + }, + "type": { + "enum": [ + "reconfigure_stream" + ], + "type": "string" + }, + "width": { + "description": "Width of the stream.", + "format": "uint32", + "minimum": 0, + "type": "integer" + } }, + "required": [ + "fps", + "height", + "type", + "width" + ], "type": "object" - } - }, - "required": [ - "cmds" - ], - "type": "object" - }, - "ModelingError": { - "description": "Why a command submitted to the Modeling API failed.", - "properties": { - "error_code": { - "description": "A string error code which refers to a family of errors. E.g. \"InvalidInput\".", - "type": "string" }, - "external_message": { - "description": "Describe the specific error which occurred. Will be shown to users, not logged.", - "type": "string" + { + "description": "Import files to the current model.", + "properties": { + "files": { + "description": "Files to import", + "items": { + "$ref": "#/components/schemas/ImportFile" + }, + "type": "array" + }, + "type": { + "enum": [ + "import_files" + ], + "type": "string" + } + }, + "required": [ + "files", + "type" + ], + "type": "object" }, - "internal_message": { - "description": "Describe the specific error which occurred. Will be logged, not shown to users.", - "type": "string" + { + "description": "Get the mass of entities in the scene or the default scene.", + "properties": { + "entity_ids": { + "description": "IDs of the entities to get the mass of. If this is empty, then the default scene is included in the mass.", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "material_density": { + "description": "The material density.", + "format": "double", + "type": "number" + }, + "material_density_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitDensity" + } + ], + "description": "The material density unit." + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitMass" + } + ], + "description": "The output unit for the mass." + }, + "source_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Select the unit interpretation of distances in the scene." + }, + "type": { + "enum": [ + "mass" + ], + "type": "string" + } + }, + "required": [ + "entity_ids", + "material_density", + "material_density_unit", + "output_unit", + "source_unit", + "type" + ], + "type": "object" + }, + { + "description": "Get the density of entities in the scene or the default scene.", + "properties": { + "entity_ids": { + "description": "IDs of the entities to get the density of. If this is empty, then the default scene is included in the density.", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "material_mass": { + "description": "The material mass.", + "format": "double", + "type": "number" + }, + "material_mass_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitMass" + } + ], + "description": "The material mass unit." + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitDensity" + } + ], + "description": "The output unit for the density." + }, + "source_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Select the unit interpretation of distances in the scene." + }, + "type": { + "enum": [ + "density" + ], + "type": "string" + } + }, + "required": [ + "entity_ids", + "material_mass", + "material_mass_unit", + "output_unit", + "source_unit", + "type" + ], + "type": "object" }, - "status_code": { - "description": "A HTTP status code.", - "format": "uint16", - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "error_code", - "external_message", - "internal_message", - "status_code" - ], - "type": "object" - }, - "ModelingOutcome": { - "description": "The result from one modeling command in a batch.", - "oneOf": [ { - "additionalProperties": false, - "description": "Each successful command has some result.", + "description": "Get the volume of entities in the scene or the default scene.", "properties": { - "success": { - "$ref": "#/components/schemas/OkModelingCmdResponse" + "entity_ids": { + "description": "IDs of the entities to get the volume of. If this is empty, then the default scene is included in the volume.", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitVolume" + } + ], + "description": "The output unit for the volume." + }, + "source_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Select the unit interpretation of distances in the scene." + }, + "type": { + "enum": [ + "volume" + ], + "type": "string" } }, "required": [ - "success" + "entity_ids", + "output_unit", + "source_unit", + "type" ], "type": "object" }, { - "additionalProperties": false, - "description": "It failed. Why? See 'struct Error' above.", + "description": "Get the center of mass of entities in the scene or the default scene.", "properties": { - "error": { - "$ref": "#/components/schemas/ModelingError" + "entity_ids": { + "description": "IDs of the entities to get the center of mass of. If this is empty, then the default scene is included in the center of mass.", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "The output unit for the center of mass." + }, + "source_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Select the unit interpretation of distances in the scene." + }, + "type": { + "enum": [ + "center_of_mass" + ], + "type": "string" } }, "required": [ - "error" + "entity_ids", + "output_unit", + "source_unit", + "type" ], "type": "object" }, { - "additionalProperties": false, - "description": "Cancelled because it required the output of a previous command, which failed.", + "description": "Get the surface area of entities in the scene or the default scene.", "properties": { - "cancelled": { - "properties": { - "what_failed": { - "allOf": [ - { - "$ref": "#/components/schemas/ModelingCmdId" - } - ], - "description": "The ID of the command that failed, cancelling this command." - } + "entity_ids": { + "description": "IDs of the entities to get the surface area of. If this is empty, then the default scene is included in the surface area.", + "items": { + "format": "uuid", + "type": "string" }, - "required": [ - "what_failed" + "type": "array" + }, + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitArea" + } ], - "type": "object" + "description": "The output unit for the surface area." + }, + "source_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Select the unit interpretation of distances in the scene." + }, + "type": { + "enum": [ + "surface_area" + ], + "type": "string" } }, "required": [ - "cancelled" + "entity_ids", + "output_unit", + "source_unit", + "type" ], "type": "object" } ] }, - "ModelingOutcomes": { - "description": "The result from a batch of modeling commands.", - "properties": { - "outcomes": { - "additionalProperties": { - "$ref": "#/components/schemas/ModelingOutcome" - }, - "type": "object" - } - }, - "required": [ - "outcomes" - ], - "type": "object" + "ModelingCmdId": { + "description": "All commands have unique IDs. These should be randomly generated.", + "format": "uuid", + "type": "string" }, "MouseClick": { "description": "The response from the `MouseClick` command.", @@ -9749,14 +7029,185 @@ "type": "object" }, { - "description": "The response from the `CurveGetType` command.", + "description": "The response from the `CurveGetType` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/CurveGetType" + }, + "type": { + "enum": [ + "curve_get_type" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `CurveGetControlPoints` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/CurveGetControlPoints" + }, + "type": { + "enum": [ + "curve_get_control_points" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `Take Snapshot` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/TakeSnapshot" + }, + "type": { + "enum": [ + "take_snapshot" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `Path Get Info` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/PathGetInfo" + }, + "type": { + "enum": [ + "path_get_info" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `Path Get Curve UUIDs for Vertices` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/PathGetCurveUuidsForVertices" + }, + "type": { + "enum": [ + "path_get_curve_uuids_for_vertices" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `PlaneIntersectAndProject` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/PlaneIntersectAndProject" + }, + "type": { + "enum": [ + "plane_intersect_and_project" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `CurveGetEndPoints` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/CurveGetEndPoints" + }, + "type": { + "enum": [ + "curve_get_end_points" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `ImportFiles` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/ImportFiles" + }, + "type": { + "enum": [ + "import_files" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `Mass` command.", + "properties": { + "data": { + "$ref": "#/components/schemas/Mass" + }, + "type": { + "enum": [ + "mass" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" + }, + { + "description": "The response from the `Volume` command.", "properties": { "data": { - "$ref": "#/components/schemas/CurveGetType" + "$ref": "#/components/schemas/Volume" }, "type": { "enum": [ - "curve_get_type" + "volume" ], "type": "string" } @@ -9768,14 +7219,14 @@ "type": "object" }, { - "description": "The response from the `CurveGetControlPoints` command.", + "description": "The response from the `Density` command.", "properties": { "data": { - "$ref": "#/components/schemas/CurveGetControlPoints" + "$ref": "#/components/schemas/Density" }, "type": { "enum": [ - "curve_get_control_points" + "density" ], "type": "string" } @@ -9787,14 +7238,14 @@ "type": "object" }, { - "description": "The response from the `Take Snapshot` command.", + "description": "The response from the `SurfaceArea` command.", "properties": { "data": { - "$ref": "#/components/schemas/TakeSnapshot" + "$ref": "#/components/schemas/SurfaceArea" }, "type": { "enum": [ - "take_snapshot" + "surface_area" ], "type": "string" } @@ -9806,14 +7257,14 @@ "type": "object" }, { - "description": "The response from the `Path Get Info` command.", + "description": "The response from the `CenterOfMass` command.", "properties": { "data": { - "$ref": "#/components/schemas/PathGetInfo" + "$ref": "#/components/schemas/CenterOfMass" }, "type": { "enum": [ - "path_get_info" + "center_of_mass" ], "type": "string" } @@ -9986,6 +7437,25 @@ "type" ], "type": "object" + }, + { + "description": "Request a collection of metrics, to include WebRTC.", + "properties": { + "data": { + "type": "object" + }, + "type": { + "enum": [ + "metrics_request" + ], + "type": "string" + } + }, + "required": [ + "data", + "type" + ], + "type": "object" } ] }, @@ -10099,11 +7569,20 @@ "obj" ], "type": "string" + }, + "units": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Export length unit.\n\nDefaults to meters." } }, "required": [ "coords", - "type" + "type", + "units" ], "type": "object" }, @@ -10188,12 +7667,21 @@ "stl" ], "type": "string" + }, + "units": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitLength" + } + ], + "description": "Export length unit.\n\nDefaults to meters." } }, "required": [ "coords", "storage", - "type" + "type", + "units" ], "type": "object" } @@ -10210,6 +7698,23 @@ ], "type": "string" }, + "PathGetCurveUuidsForVertices": { + "description": "The response from the `PathGetCurveUuidsForVertices` command.", + "properties": { + "curve_ids": { + "description": "The UUIDs of the curve entities.", + "items": { + "format": "uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "curve_ids" + ], + "type": "object" + }, "PathGetInfo": { "description": "The response from the `PathGetInfo` command.", "properties": { @@ -10240,6 +7745,10 @@ ], "description": "End point of the line." }, + "relative": { + "description": "Whether or not this line is a relative offset", + "type": "boolean" + }, "type": { "enum": [ "line" @@ -10249,6 +7758,7 @@ }, "required": [ "end", + "relative", "type" ], "type": "object" @@ -10258,12 +7768,12 @@ "properties": { "angle_end": { "description": "Start of the arc along circle's perimeter.", - "format": "float", + "format": "double", "type": "number" }, "angle_start": { "description": "Start of the arc along circle's perimeter.", - "format": "float", + "format": "double", "type": "number" }, "center": { @@ -10276,9 +7786,13 @@ }, "radius": { "description": "Radius of the circle", - "format": "float", + "format": "double", "type": "number" }, + "relative": { + "description": "Whether or not this arc is a relative offset", + "type": "boolean" + }, "type": { "enum": [ "arc" @@ -10291,6 +7805,7 @@ "angle_start", "center", "radius", + "relative", "type" ], "type": "object" @@ -10322,6 +7837,10 @@ ], "description": "Final control point." }, + "relative": { + "description": "Whether or not this bezier is a relative offset", + "type": "boolean" + }, "type": { "enum": [ "bezier" @@ -10333,6 +7852,70 @@ "control1", "control2", "end", + "relative", + "type" + ], + "type": "object" + }, + { + "description": "Adds a tangent arc from current pen position with the given radius and angle.", + "properties": { + "offset": { + "allOf": [ + { + "$ref": "#/components/schemas/Angle" + } + ], + "description": "Offset of the arc." + }, + "radius": { + "description": "Radius of the arc. Not to be confused with Raiders of the Lost Ark.", + "format": "double", + "type": "number" + }, + "type": { + "enum": [ + "tangential_arc" + ], + "type": "string" + } + }, + "required": [ + "offset", + "radius", + "type" + ], + "type": "object" + }, + { + "description": "Adds a tangent arc from current pen position to the new position.", + "properties": { + "angle_snap_increment": { + "allOf": [ + { + "$ref": "#/components/schemas/Angle" + } + ], + "description": "0 will be interpreted as none/null.", + "nullable": true + }, + "to": { + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ], + "description": "Where the arc should end. Must lie in the same plane as the current path pen position. Must not be colinear with current path pen position." + }, + "type": { + "enum": [ + "tangential_arc_to" + ], + "type": "string" + } + }, + "required": [ + "to", "type" ], "type": "object" @@ -10358,10 +7941,15 @@ ], "description": "Which command created this path? This field is absent if the path command is not actually creating a path segment, e.g. moving the pen doesn't create a path segment.", "nullable": true + }, + "relative": { + "description": "Whether or not this segment is a relative offset", + "type": "boolean" } }, "required": [ - "command" + "command", + "relative" ], "type": "object" }, @@ -10461,36 +8049,17 @@ } ] }, - "PluginsInfo": { - "description": "Available plugins per type.\n\n**Note**: Only unmanaged (V1) plugins are included in this list. V1 plugins are \\\"lazily\\\" loaded, and are not returned in this list if there is no resource using the plugin.", + "PlaneIntersectAndProject": { + "description": "Corresponding coordinates of given window coordinates, intersected on given plane.", "properties": { - "authorization": { - "description": "Names of available authorization plugins.", - "items": { - "type": "string" - }, - "type": "array" - }, - "log": { - "description": "Names of available logging-drivers, and logging-driver plugins.", - "items": { - "type": "string" - }, - "type": "array" - }, - "network": { - "description": "Names of available network-drivers, and network-driver plugins.", - "items": { - "type": "string" - }, - "type": "array" - }, - "volume": { - "description": "Names of available volume-drivers, and network-driver plugins.", - "items": { - "type": "string" - }, - "type": "array" + "plane_coordinates": { + "allOf": [ + { + "$ref": "#/components/schemas/Point2d" + } + ], + "description": "Corresponding coordinates of given window coordinates, intersected on given plane.", + "nullable": true } }, "type": "object" @@ -10525,11 +8094,11 @@ "description": "A point in 2D space", "properties": { "x": { - "format": "float", + "format": "double", "type": "number" }, "y": { - "format": "float", + "format": "double", "type": "number" } }, @@ -10611,46 +8180,6 @@ ], "type": "object" }, - "RegistryServiceConfig": { - "description": "RegistryServiceConfig stores daemon registry services configuration.", - "properties": { - "allow_nondistributable_artifacts_cid_rs": { - "description": "List of IP ranges to which nondistributable artifacts can be pushed, using the CIDR syntax [RFC 4632](https://tools.ietf.org/html/4632). Some images (for example, Windows base images) contain artifacts whose distribution is restricted by license. When these images are pushed to a registry, restricted artifacts are not included. This configuration override this behavior, and enables the daemon to push nondistributable artifacts to all registries whose resolved IP address is within the subnet described by the CIDR syntax. This option is useful when pushing images containing nondistributable artifacts to a registry on an air-gapped network so hosts on that network can pull the images without connecting to another server.\n\n**Warning**: Nondistributable artifacts typically have restrictions on how and where they can be distributed and shared. Only use this feature to push artifacts to private registries and ensure that you are in compliance with any terms that cover redistributing nondistributable artifacts.", - "items": { - "type": "string" - }, - "type": "array" - }, - "allow_nondistributable_artifacts_hostnames": { - "description": "List of registry hostnames to which nondistributable artifacts can be pushed, using the format `[:]` or `[:]`. Some images (for example, Windows base images) contain artifacts whose distribution is restricted by license. When these images are pushed to a registry, restricted artifacts are not included. This configuration override this behavior for the specified registries. This option is useful when pushing images containing nondistributable artifacts to a registry on an air-gapped network so hosts on that network can pull the images without connecting to another server.\n\n**Warning**: Nondistributable artifacts typically have restrictions on how and where they can be distributed and shared. Only use this feature to push artifacts to private registries and ensure that you are in compliance with any terms that cover redistributing nondistributable artifacts.", - "items": { - "type": "string" - }, - "type": "array" - }, - "index_configs": { - "additionalProperties": { - "$ref": "#/components/schemas/IndexInfo" - }, - "type": "object" - }, - "insecure_registry_cid_rs": { - "description": "List of IP ranges of insecure registries, using the CIDR syntax ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from unknown CAs) communication. By default, local registries (`127.0.0.0/8`) are configured as insecure. All other registries are secure. Communicating with an insecure registry is not possible if the daemon assumes that registry is secure. This configuration override this behavior, insecure communication with registries whose resolved IP address is within the subnet described by the CIDR syntax. Registries can also be marked insecure by hostname. Those registries are listed under `IndexConfigs` and have their `Secure` field set to `false`.\n\n**Warning**: Using this option can be useful when running a local registry, but introduces security vulnerabilities. This option should therefore ONLY be used for testing purposes. For increased security, users should add their CA to their system's list of trusted CAs instead of enabling this option.", - "items": { - "type": "string" - }, - "type": "array" - }, - "mirrors": { - "description": "List of registry URLs that act as a mirror for the official (`docker.io`) registry.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "RtcIceCandidateInit": { "description": "ICECandidateInit is used to serialize ice candidates", "properties": { @@ -10743,24 +8272,6 @@ ], "type": "object" }, - "Runtime": { - "description": "Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec) runtime. The runtime is invoked by the daemon via the `containerd` daemon. OCI runtimes act as an interface to the Linux kernel namespaces, cgroups, and SELinux.", - "properties": { - "path": { - "description": "Name and, optional, path, of the OCI executable binary. If the path is omitted, the daemon searches the host's `$PATH` for the binary and uses the first result.", - "nullable": true, - "type": "string" - }, - "runtime_args": { - "description": "List of command-line arguments to pass to the runtime when invoked.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "SceneSelectionType": { "description": "The type of scene selection change", "oneOf": [ @@ -10997,6 +8508,29 @@ ], "type": "object" }, + "SurfaceArea": { + "description": "The surface area response.", + "properties": { + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitArea" + } + ], + "description": "The output unit for the surface area." + }, + "surface_area": { + "description": "The surface area.", + "format": "double", + "type": "number" + } + }, + "required": [ + "output_unit", + "surface_area" + ], + "type": "object" + }, "System": { "description": "Co-ordinate system definition.\n\nThe `up` axis must be orthogonal to the `forward` axis.\n\nSee [cglearn.eu] for background reading.\n\n[cglearn.eu](https://cglearn.eu/pub/computer-graphics/introduction-to-geometry#material-coordinate-systems-1)", "properties": { @@ -11023,48 +8557,6 @@ ], "type": "object" }, - "SystemInfoCgroupDriverEnum": { - "enum": [ - "", - "cgroupfs", - "systemd", - "none" - ], - "type": "string" - }, - "SystemInfoCgroupVersionEnum": { - "enum": [ - "", - "1", - "2" - ], - "type": "string" - }, - "SystemInfoDefaultAddressPools": { - "properties": { - "base": { - "description": "The network address in CIDR format", - "nullable": true, - "type": "string" - }, - "size": { - "description": "The network pool size", - "format": "int64", - "nullable": true, - "type": "integer" - } - }, - "type": "object" - }, - "SystemInfoIsolationEnum": { - "enum": [ - "", - "default", - "hyperv", - "process" - ], - "type": "string" - }, "TakeSnapshot": { "description": "The response from the `TakeSnapshot` command.", "properties": { @@ -11196,14 +8688,14 @@ "description": "The valid types of area units.", "oneOf": [ { - "description": "Square centimetres ", + "description": "Square centimeters ", "enum": [ "cm2" ], "type": "string" }, { - "description": "Square decimetres ", + "description": "Square decimeters ", "enum": [ "dm2" ], @@ -11224,21 +8716,21 @@ "type": "string" }, { - "description": "Square kilometres ", + "description": "Square kilometers ", "enum": [ "km2" ], "type": "string" }, { - "description": "Square metres ", + "description": "Square meters ", "enum": [ "m2" ], "type": "string" }, { - "description": "Square millimetres ", + "description": "Square millimeters ", "enum": [ "mm2" ], @@ -11936,7 +9428,7 @@ "description": "The valid types of length units.", "oneOf": [ { - "description": "Centimetres ", + "description": "Centimeters ", "enum": [ "cm" ], @@ -11957,14 +9449,14 @@ "type": "string" }, { - "description": "Metres ", + "description": "Meters ", "enum": [ "m" ], "type": "string" }, { - "description": "Millimetres ", + "description": "Millimeters ", "enum": [ "mm" ], @@ -12727,7 +10219,7 @@ "description": "The valid types of volume units.", "oneOf": [ { - "description": "Cubic centimetres (cc or cm³) ", + "description": "Cubic centimeters (cc or cm³) ", "enum": [ "cm3" ], @@ -12748,7 +10240,7 @@ "type": "string" }, { - "description": "Cubic metres (m³) ", + "description": "Cubic meters (m³) ", "enum": [ "m3" ], @@ -13056,6 +10548,29 @@ ], "type": "object" }, + "Volume": { + "description": "The volume response.", + "properties": { + "output_unit": { + "allOf": [ + { + "$ref": "#/components/schemas/UnitVolume" + } + ], + "description": "The output unit for the volume." + }, + "volume": { + "description": "The volume.", + "format": "double", + "type": "number" + } + }, + "required": [ + "output_unit", + "volume" + ], + "type": "object" + }, "WebSocketRequest": { "description": "The websocket messages the server receives.", "oneOf": [ @@ -13154,6 +10669,30 @@ "type" ], "type": "object" + }, + { + "description": "The response to a metrics collection request from the server.", + "properties": { + "metrics": { + "allOf": [ + { + "$ref": "#/components/schemas/ClientMetrics" + } + ], + "description": "Collected metrics from the Client's end of the engine connection." + }, + "type": { + "enum": [ + "metrics_response" + ], + "type": "string" + } + }, + "required": [ + "metrics", + "type" + ], + "type": "object" } ] }, @@ -15857,257 +13396,6 @@ ] } }, - "/modeling/cmd": { - "options": { - "description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.", - "operationId": "options_cmd", - "responses": { - "204": { - "description": "successful operation, no content", - "headers": { - "Access-Control-Allow-Credentials": { - "description": "Access-Control-Allow-Credentials header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Headers": { - "description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Methods": { - "description": "Access-Control-Allow-Methods header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Origin": { - "description": "Access-Control-Allow-Origin header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - } - }, - "4XX": { - "$ref": "#/components/responses/Error" - }, - "5XX": { - "$ref": "#/components/responses/Error" - } - }, - "summary": "OPTIONS endpoint.", - "tags": [ - "hidden" - ] - }, - "post": { - "description": "Response depends on which command was submitted, so unfortunately the OpenAPI schema can't generate the right response type.", - "operationId": "cmd", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModelingCmdReq" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OkModelingCmdResponse" - } - } - }, - "description": "successful operation", - "headers": { - "Access-Control-Allow-Credentials": { - "description": "Access-Control-Allow-Credentials header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Headers": { - "description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Methods": { - "description": "Access-Control-Allow-Methods header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Origin": { - "description": "Access-Control-Allow-Origin header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - } - }, - "4XX": { - "$ref": "#/components/responses/Error" - }, - "5XX": { - "$ref": "#/components/responses/Error" - } - }, - "summary": "Submit one modeling operation.", - "tags": [ - "modeling", - "hidden" - ] - } - }, - "/modeling/cmd-batch": { - "options": { - "description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.", - "operationId": "options_cmd_batch", - "responses": { - "204": { - "description": "successful operation, no content", - "headers": { - "Access-Control-Allow-Credentials": { - "description": "Access-Control-Allow-Credentials header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Headers": { - "description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Methods": { - "description": "Access-Control-Allow-Methods header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Origin": { - "description": "Access-Control-Allow-Origin header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - } - }, - "4XX": { - "$ref": "#/components/responses/Error" - }, - "5XX": { - "$ref": "#/components/responses/Error" - } - }, - "summary": "OPTIONS endpoint.", - "tags": [ - "hidden" - ] - }, - "post": { - "operationId": "cmd_batch", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModelingCmdReqBatch" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ModelingOutcomes" - } - } - }, - "description": "successful operation", - "headers": { - "Access-Control-Allow-Credentials": { - "description": "Access-Control-Allow-Credentials header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Headers": { - "description": "Access-Control-Allow-Headers header. This is a comma-separated list of headers.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Methods": { - "description": "Access-Control-Allow-Methods header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - "Access-Control-Allow-Origin": { - "description": "Access-Control-Allow-Origin header.", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - } - }, - "4XX": { - "$ref": "#/components/responses/Error" - }, - "5XX": { - "$ref": "#/components/responses/Error" - } - }, - "summary": "Submit many modeling operations.", - "tags": [ - "modeling", - "hidden" - ] - } - }, "/oauth2/device/auth": { "options": { "description": "This is necessary for some preflight requests, specifically POST, PUT, and DELETE.", diff --git a/types.go b/types.go index 7607c7a..d57959b 100755 --- a/types.go +++ b/types.go @@ -70,7 +70,7 @@ type APICallWithPrice struct { // Origin: The origin of the API call. Origin string `json:"origin" yaml:"origin" schema:"origin"` // Price: The price of the API call. - Price float64 `json:"price" yaml:"price" schema:"price"` + Price string `json:"price" yaml:"price" schema:"price"` // RequestBody: The request body sent by the API call. RequestBody string `json:"request_body" yaml:"request_body" schema:"request_body"` // RequestQueryParams: The request query params sent by the API call. @@ -219,6 +219,14 @@ type AiPluginManifest struct { SchemaVersion string `json:"schema_version" yaml:"schema_version" schema:"schema_version"` } +// Angle: An angle, with a specific unit. +type Angle struct { + // Unit: What unit is the measurement? + Unit UnitAngle `json:"unit" yaml:"unit" schema:"unit,required"` + // Value: The size of the angle, measured in the chosen unit. + Value float64 `json:"value" yaml:"value" schema:"value,required"` +} + // AnnotationLineEnd: Annotation line end type type AnnotationLineEnd string @@ -601,12 +609,6 @@ const ( CameraDragInteractionTypeZoom CameraDragInteractionType = "zoom" ) -// Cancelled is the type definition for a Cancelled. -type Cancelled struct { - // WhatFailed: The ID of the command that failed, cancelling this command. - WhatFailed UUID `json:"what_failed" yaml:"what_failed" schema:"what_failed,required"` -} - // CardDetails: The card details of a payment method. type CardDetails struct { // Brand: Card brand. @@ -631,6 +633,34 @@ type CardDetails struct { Last4 string `json:"last4" yaml:"last4" schema:"last4"` } +// CenterOfMass: The center of mass response. +type CenterOfMass struct { + // CenterOfMass: The center of mass. + CenterOfMass Point3D `json:"center_of_mass" yaml:"center_of_mass" schema:"center_of_mass,required"` + // OutputUnit: The output unit for the center of mass. + OutputUnit UnitLength `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` +} + +// ClientMetrics: ClientMetrics contains information regarding the state of the peer. +type ClientMetrics struct { + // RtcFramesDecoded: Counter of the number of WebRTC frames that the client has decoded during this session. + RtcFramesDecoded int `json:"rtc_frames_decoded" yaml:"rtc_frames_decoded" schema:"rtc_frames_decoded,required"` + // RtcFramesDropped: Counter of the number of WebRTC frames the client has dropped during this session. + RtcFramesDropped int `json:"rtc_frames_dropped" yaml:"rtc_frames_dropped" schema:"rtc_frames_dropped,required"` + // RtcFramesPerSecond: Current number of frames being rendered per second. A good target is 60 frames per second, but it can fluctuate depending on network conditions. + RtcFramesPerSecond int `json:"rtc_frames_per_second" yaml:"rtc_frames_per_second" schema:"rtc_frames_per_second,required"` + // RtcFramesReceived: Counter of the number of WebRTC frames that the client has received during this session. + RtcFramesReceived int `json:"rtc_frames_received" yaml:"rtc_frames_received" schema:"rtc_frames_received,required"` + // RtcFreezeCount: Number of times the WebRTC playback has frozen. This is usually due to network conditions. + RtcFreezeCount int `json:"rtc_freeze_count" yaml:"rtc_freeze_count" schema:"rtc_freeze_count,required"` + // RtcJitterSec: Amount of "jitter" in the WebRTC session. Network latency is the time it takes a packet to traverse the network. The amount that the latency varies is the jitter. Video latency is the time it takes to render a frame sent by the server (including network latency). A low jitter means the video latency can be reduced without impacting smooth playback. High jitter means clients will increase video latency to ensure smooth playback. + RtcJitterSec float64 `json:"rtc_jitter_sec" yaml:"rtc_jitter_sec" schema:"rtc_jitter_sec,required"` + // RtcKeyframesDecoded: Number of "key frames" decoded in the underlying h.264 stream. A key frame is an expensive (bandwidth-wise) "full image" of the video frame. Data after the keyframe become -- effectively -- "diff" operations on that key frame. The Engine will only send a keyframe if required, which is an indication that some of the "diffs" have been lost, usually an indication of poor network conditions. We like this metric to understand times when the connection has had to recover. + RtcKeyframesDecoded int `json:"rtc_keyframes_decoded" yaml:"rtc_keyframes_decoded" schema:"rtc_keyframes_decoded,required"` + // RtcTotalFreezesDurationSec: Number of seconds of frozen video the user has been subjected to. + RtcTotalFreezesDurationSec float64 `json:"rtc_total_freezes_duration_sec" yaml:"rtc_total_freezes_duration_sec" schema:"rtc_total_freezes_duration_sec,required"` +} + // Cluster: Cluster information. type Cluster struct { // Addr: The IP address of the cluster. @@ -681,14 +711,6 @@ type Color struct { R float64 `json:"r" yaml:"r" schema:"r,required"` } -// Commit: Commit holds the Git-commit (SHA1) that a binary was built from, as reported in the version-string of external tools, such as `containerd`, or `runC`. -type Commit struct { - // Expected: Commit ID of external tool expected by dockerd as set at build time. - Expected string `json:"expected" yaml:"expected" schema:"expected"` - // ID: Actual commit ID of external tool. - ID string `json:"id" yaml:"id" schema:"id"` -} - // Connection: Metadata about a pub-sub connection. // This is mostly used for internal purposes and debugging. type Connection struct { @@ -702,7 +724,7 @@ type Connection struct { Connections int `json:"connections" yaml:"connections" schema:"connections"` // Cores: The CPU core usage of the server. Cores int `json:"cores" yaml:"cores" schema:"cores"` - // Cpu: + // Cpu: The CPU usage of the server. Cpu float64 `json:"cpu" yaml:"cpu" schema:"cpu"` // Gateway: Information about the gateway. Gateway Gateway `json:"gateway" yaml:"gateway" schema:"gateway"` @@ -720,7 +742,7 @@ type Connection struct { HttpHost string `json:"http_host" yaml:"http_host" schema:"http_host"` // HttpPort: The http port of the server. HttpPort int `json:"http_port" yaml:"http_port" schema:"http_port"` - // HttpReqStats: + // HttpReqStats: HTTP request statistics. HttpReqStats map[string]int `json:"http_req_stats" yaml:"http_req_stats" schema:"http_req_stats,required"` // HttpsPort: The https port of the server. HttpsPort int `json:"https_port" yaml:"https_port" schema:"https_port"` @@ -786,514 +808,10 @@ type Connection struct { WriteDeadline int `json:"write_deadline" yaml:"write_deadline" schema:"write_deadline"` } -// CountryCode: An enumeration of all ISO-3166 alpha-2 country codes. -type CountryCode string - -const ( - // CountryCodeAf: Afghanistan - CountryCodeAf CountryCode = "AF" - // CountryCodeAx: Åland Islands - CountryCodeAx CountryCode = "AX" - // CountryCodeAl: Albania - CountryCodeAl CountryCode = "AL" - // CountryCodeDz: Algeria - CountryCodeDz CountryCode = "DZ" - // CountryCodeAs: American Samoa - CountryCodeAs CountryCode = "AS" - // CountryCodeAd: Andorra - CountryCodeAd CountryCode = "AD" - // CountryCodeAo: Angola - CountryCodeAo CountryCode = "AO" - // CountryCodeAi: Anguilla - CountryCodeAi CountryCode = "AI" - // CountryCodeAq: Antarctica - CountryCodeAq CountryCode = "AQ" - // CountryCodeAg: Antigua and Barbuda - CountryCodeAg CountryCode = "AG" - // CountryCodeAr: Argentina - CountryCodeAr CountryCode = "AR" - // CountryCodeAm: Armenia - CountryCodeAm CountryCode = "AM" - // CountryCodeAw: Aruba - CountryCodeAw CountryCode = "AW" - // CountryCodeAu: Australia - CountryCodeAu CountryCode = "AU" - // CountryCodeAt: Austria - CountryCodeAt CountryCode = "AT" - // CountryCodeAz: Azerbaijan - CountryCodeAz CountryCode = "AZ" - // CountryCodeBs: Bahamas - CountryCodeBs CountryCode = "BS" - // CountryCodeBh: Bahrain - CountryCodeBh CountryCode = "BH" - // CountryCodeBd: Bangladesh - CountryCodeBd CountryCode = "BD" - // CountryCodeBb: Barbados - CountryCodeBb CountryCode = "BB" - // CountryCodeBy: Belarus - CountryCodeBy CountryCode = "BY" - // CountryCodeBe: Belgium - CountryCodeBe CountryCode = "BE" - // CountryCodeBz: Belize - CountryCodeBz CountryCode = "BZ" - // CountryCodeBj: Benin - CountryCodeBj CountryCode = "BJ" - // CountryCodeBm: Bermuda - CountryCodeBm CountryCode = "BM" - // CountryCodeBt: Bhutan - CountryCodeBt CountryCode = "BT" - // CountryCodeBo: Bolivia (Plurinational State of) - CountryCodeBo CountryCode = "BO" - // CountryCodeBq: Bonaire, Sint Eustatius and Saba - CountryCodeBq CountryCode = "BQ" - // CountryCodeBa: Bosnia and Herzegovina - CountryCodeBa CountryCode = "BA" - // CountryCodeBw: Botswana - CountryCodeBw CountryCode = "BW" - // CountryCodeBv: Bouvet Island - CountryCodeBv CountryCode = "BV" - // CountryCodeBr: Brazil - CountryCodeBr CountryCode = "BR" - // CountryCodeIo: British Indian Ocean Territory - CountryCodeIo CountryCode = "IO" - // CountryCodeBn: Brunei Darussalam - CountryCodeBn CountryCode = "BN" - // CountryCodeBg: Bulgaria - CountryCodeBg CountryCode = "BG" - // CountryCodeBf: Burkina Faso - CountryCodeBf CountryCode = "BF" - // CountryCodeBi: Burundi - CountryCodeBi CountryCode = "BI" - // CountryCodeCv: Cabo Verde - CountryCodeCv CountryCode = "CV" - // CountryCodeKh: Cambodia - CountryCodeKh CountryCode = "KH" - // CountryCodeCm: Cameroon - CountryCodeCm CountryCode = "CM" - // CountryCodeCa: Canada - CountryCodeCa CountryCode = "CA" - // CountryCodeKy: Cayman Islands - CountryCodeKy CountryCode = "KY" - // CountryCodeCf: Central African Republic - CountryCodeCf CountryCode = "CF" - // CountryCodeTd: Chad - CountryCodeTd CountryCode = "TD" - // CountryCodeCl: Chile - CountryCodeCl CountryCode = "CL" - // CountryCodeCn: China - CountryCodeCn CountryCode = "CN" - // CountryCodeCx: Christmas Island - CountryCodeCx CountryCode = "CX" - // CountryCodeCc: Cocos (Keeling) Islands - CountryCodeCc CountryCode = "CC" - // CountryCodeCo: Colombia - CountryCodeCo CountryCode = "CO" - // CountryCodeKm: Comoros - CountryCodeKm CountryCode = "KM" - // CountryCodeCg: Congo - CountryCodeCg CountryCode = "CG" - // CountryCodeCd: Congo (Democratic Republic of the) - CountryCodeCd CountryCode = "CD" - // CountryCodeCk: Cook Islands - CountryCodeCk CountryCode = "CK" - // CountryCodeCr: Costa Rica - CountryCodeCr CountryCode = "CR" - // CountryCodeCi: Côte d'Ivoire - CountryCodeCi CountryCode = "CI" - // CountryCodeHr: Croatia - CountryCodeHr CountryCode = "HR" - // CountryCodeCu: Cuba - CountryCodeCu CountryCode = "CU" - // CountryCodeCw: Curaçao - CountryCodeCw CountryCode = "CW" - // CountryCodeCy: Cyprus - CountryCodeCy CountryCode = "CY" - // CountryCodeCz: Czechia - CountryCodeCz CountryCode = "CZ" - // CountryCodeDk: Denmark - CountryCodeDk CountryCode = "DK" - // CountryCodeDj: Djibouti - CountryCodeDj CountryCode = "DJ" - // CountryCodeDm: Dominica - CountryCodeDm CountryCode = "DM" - // CountryCodeDo: Dominican Republic - CountryCodeDo CountryCode = "DO" - // CountryCodeEc: Ecuador - CountryCodeEc CountryCode = "EC" - // CountryCodeEg: Egypt - CountryCodeEg CountryCode = "EG" - // CountryCodeSv: El Salvador - CountryCodeSv CountryCode = "SV" - // CountryCodeGq: Equatorial Guinea - CountryCodeGq CountryCode = "GQ" - // CountryCodeEr: Eritrea - CountryCodeEr CountryCode = "ER" - // CountryCodeEe: Estonia - CountryCodeEe CountryCode = "EE" - // CountryCodeEt: Ethiopia - CountryCodeEt CountryCode = "ET" - // CountryCodeFk: Falkland Islands (Malvinas) - CountryCodeFk CountryCode = "FK" - // CountryCodeFo: Faroe Islands - CountryCodeFo CountryCode = "FO" - // CountryCodeFj: Fiji - CountryCodeFj CountryCode = "FJ" - // CountryCodeFi: Finland - CountryCodeFi CountryCode = "FI" - // CountryCodeFr: France - CountryCodeFr CountryCode = "FR" - // CountryCodeGf: French Guiana - CountryCodeGf CountryCode = "GF" - // CountryCodePf: French Polynesia - CountryCodePf CountryCode = "PF" - // CountryCodeTf: French Southern Territories - CountryCodeTf CountryCode = "TF" - // CountryCodeGa: Gabon - CountryCodeGa CountryCode = "GA" - // CountryCodeGm: Gambia - CountryCodeGm CountryCode = "GM" - // CountryCodeGe: Georgia - CountryCodeGe CountryCode = "GE" - // CountryCodeDe: Germany - CountryCodeDe CountryCode = "DE" - // CountryCodeGh: Ghana - CountryCodeGh CountryCode = "GH" - // CountryCodeGi: Gibraltar - CountryCodeGi CountryCode = "GI" - // CountryCodeGr: Greece - CountryCodeGr CountryCode = "GR" - // CountryCodeGl: Greenland - CountryCodeGl CountryCode = "GL" - // CountryCodeGd: Grenada - CountryCodeGd CountryCode = "GD" - // CountryCodeGp: Guadeloupe - CountryCodeGp CountryCode = "GP" - // CountryCodeGu: Guam - CountryCodeGu CountryCode = "GU" - // CountryCodeGt: Guatemala - CountryCodeGt CountryCode = "GT" - // CountryCodeGg: Guernsey - CountryCodeGg CountryCode = "GG" - // CountryCodeGn: Guinea - CountryCodeGn CountryCode = "GN" - // CountryCodeGw: Guinea-Bissau - CountryCodeGw CountryCode = "GW" - // CountryCodeGy: Guyana - CountryCodeGy CountryCode = "GY" - // CountryCodeHt: Haiti - CountryCodeHt CountryCode = "HT" - // CountryCodeHm: Heard Island and McDonald Islands - CountryCodeHm CountryCode = "HM" - // CountryCodeVa: Holy See - CountryCodeVa CountryCode = "VA" - // CountryCodeHn: Honduras - CountryCodeHn CountryCode = "HN" - // CountryCodeHk: Hong Kong - CountryCodeHk CountryCode = "HK" - // CountryCodeHu: Hungary - CountryCodeHu CountryCode = "HU" - // CountryCodeIs: Iceland - CountryCodeIs CountryCode = "IS" - // CountryCodeIn: India - CountryCodeIn CountryCode = "IN" - // CountryCodeID: Indonesia - CountryCodeID CountryCode = "ID" - // CountryCodeIr: Iran (Islamic Republic of) - CountryCodeIr CountryCode = "IR" - // CountryCodeIq: Iraq - CountryCodeIq CountryCode = "IQ" - // CountryCodeIe: Ireland - CountryCodeIe CountryCode = "IE" - // CountryCodeIm: Isle of Man - CountryCodeIm CountryCode = "IM" - // CountryCodeIl: Israel - CountryCodeIl CountryCode = "IL" - // CountryCodeIt: Italy - CountryCodeIt CountryCode = "IT" - // CountryCodeJm: Jamaica - CountryCodeJm CountryCode = "JM" - // CountryCodeJp: Japan - CountryCodeJp CountryCode = "JP" - // CountryCodeJe: Jersey - CountryCodeJe CountryCode = "JE" - // CountryCodeJo: Jordan - CountryCodeJo CountryCode = "JO" - // CountryCodeKz: Kazakhstan - CountryCodeKz CountryCode = "KZ" - // CountryCodeKe: Kenya - CountryCodeKe CountryCode = "KE" - // CountryCodeKi: Kiribati - CountryCodeKi CountryCode = "KI" - // CountryCodeKp: Korea (Democratic People's Republic of) - CountryCodeKp CountryCode = "KP" - // CountryCodeKr: Korea (Republic of) - CountryCodeKr CountryCode = "KR" - // CountryCodeKw: Kuwait - CountryCodeKw CountryCode = "KW" - // CountryCodeKg: Kyrgyzstan - CountryCodeKg CountryCode = "KG" - // CountryCodeLa: Lao People's Democratic Republic - CountryCodeLa CountryCode = "LA" - // CountryCodeLv: Latvia - CountryCodeLv CountryCode = "LV" - // CountryCodeLb: Lebanon - CountryCodeLb CountryCode = "LB" - // CountryCodeLs: Lesotho - CountryCodeLs CountryCode = "LS" - // CountryCodeLr: Liberia - CountryCodeLr CountryCode = "LR" - // CountryCodeLy: Libya - CountryCodeLy CountryCode = "LY" - // CountryCodeLi: Liechtenstein - CountryCodeLi CountryCode = "LI" - // CountryCodeLt: Lithuania - CountryCodeLt CountryCode = "LT" - // CountryCodeLu: Luxembourg - CountryCodeLu CountryCode = "LU" - // CountryCodeMo: Macao - CountryCodeMo CountryCode = "MO" - // CountryCodeMk: Macedonia (the former Yugoslav Republic of) - CountryCodeMk CountryCode = "MK" - // CountryCodeMg: Madagascar - CountryCodeMg CountryCode = "MG" - // CountryCodeMw: Malawi - CountryCodeMw CountryCode = "MW" - // CountryCodeMy: Malaysia - CountryCodeMy CountryCode = "MY" - // CountryCodeMv: Maldives - CountryCodeMv CountryCode = "MV" - // CountryCodeMl: Mali - CountryCodeMl CountryCode = "ML" - // CountryCodeMt: Malta - CountryCodeMt CountryCode = "MT" - // CountryCodeMh: Marshall Islands - CountryCodeMh CountryCode = "MH" - // CountryCodeMq: Martinique - CountryCodeMq CountryCode = "MQ" - // CountryCodeMr: Mauritania - CountryCodeMr CountryCode = "MR" - // CountryCodeMu: Mauritius - CountryCodeMu CountryCode = "MU" - // CountryCodeYt: Mayotte - CountryCodeYt CountryCode = "YT" - // CountryCodeMx: Mexico - CountryCodeMx CountryCode = "MX" - // CountryCodeFm: Micronesia (Federated States of) - CountryCodeFm CountryCode = "FM" - // CountryCodeMd: Moldova (Republic of) - CountryCodeMd CountryCode = "MD" - // CountryCodeMc: Monaco - CountryCodeMc CountryCode = "MC" - // CountryCodeMn: Mongolia - CountryCodeMn CountryCode = "MN" - // CountryCodeMe: Montenegro - CountryCodeMe CountryCode = "ME" - // CountryCodeMs: Montserrat - CountryCodeMs CountryCode = "MS" - // CountryCodeMa: Morocco - CountryCodeMa CountryCode = "MA" - // CountryCodeMz: Mozambique - CountryCodeMz CountryCode = "MZ" - // CountryCodeMm: Myanmar - CountryCodeMm CountryCode = "MM" - // CountryCodeNa: Namibia - CountryCodeNa CountryCode = "NA" - // CountryCodeNr: Nauru - CountryCodeNr CountryCode = "NR" - // CountryCodeNp: Nepal - CountryCodeNp CountryCode = "NP" - // CountryCodeNl: Netherlands - CountryCodeNl CountryCode = "NL" - // CountryCodeNc: New Caledonia - CountryCodeNc CountryCode = "NC" - // CountryCodeNz: New Zealand - CountryCodeNz CountryCode = "NZ" - // CountryCodeNi: Nicaragua - CountryCodeNi CountryCode = "NI" - // CountryCodeNe: Niger - CountryCodeNe CountryCode = "NE" - // CountryCodeNg: Nigeria - CountryCodeNg CountryCode = "NG" - // CountryCodeNu: Niue - CountryCodeNu CountryCode = "NU" - // CountryCodeNf: Norfolk Island - CountryCodeNf CountryCode = "NF" - // CountryCodeMp: Northern Mariana Islands - CountryCodeMp CountryCode = "MP" - // CountryCodeNo: Norway - CountryCodeNo CountryCode = "NO" - // CountryCodeOm: Oman - CountryCodeOm CountryCode = "OM" - // CountryCodePk: Pakistan - CountryCodePk CountryCode = "PK" - // CountryCodePw: Palau - CountryCodePw CountryCode = "PW" - // CountryCodePs: Palestine, State of - CountryCodePs CountryCode = "PS" - // CountryCodePa: Panama - CountryCodePa CountryCode = "PA" - // CountryCodePg: Papua New Guinea - CountryCodePg CountryCode = "PG" - // CountryCodePy: Paraguay - CountryCodePy CountryCode = "PY" - // CountryCodePe: Peru - CountryCodePe CountryCode = "PE" - // CountryCodePh: Philippines - CountryCodePh CountryCode = "PH" - // CountryCodePn: Pitcairn - CountryCodePn CountryCode = "PN" - // CountryCodePl: Poland - CountryCodePl CountryCode = "PL" - // CountryCodePt: Portugal - CountryCodePt CountryCode = "PT" - // CountryCodePr: Puerto Rico - CountryCodePr CountryCode = "PR" - // CountryCodeQa: Qatar - CountryCodeQa CountryCode = "QA" - // CountryCodeRe: Réunion - CountryCodeRe CountryCode = "RE" - // CountryCodeRo: Romania - CountryCodeRo CountryCode = "RO" - // CountryCodeRu: Russian Federation - CountryCodeRu CountryCode = "RU" - // CountryCodeRw: Rwanda - CountryCodeRw CountryCode = "RW" - // CountryCodeBl: Saint Barthélemy - CountryCodeBl CountryCode = "BL" - // CountryCodeSh: Saint Helena, Ascension and Tristan da Cunha - CountryCodeSh CountryCode = "SH" - // CountryCodeKn: Saint Kitts and Nevis - CountryCodeKn CountryCode = "KN" - // CountryCodeLc: Saint Lucia - CountryCodeLc CountryCode = "LC" - // CountryCodeMf: Saint Martin (French part) - CountryCodeMf CountryCode = "MF" - // CountryCodePm: Saint Pierre and Miquelon - CountryCodePm CountryCode = "PM" - // CountryCodeVc: Saint Vincent and the Grenadines - CountryCodeVc CountryCode = "VC" - // CountryCodeWs: Samoa - CountryCodeWs CountryCode = "WS" - // CountryCodeSm: San Marino - CountryCodeSm CountryCode = "SM" - // CountryCodeSt: Sao Tome and Principe - CountryCodeSt CountryCode = "ST" - // CountryCodeSa: Saudi Arabia - CountryCodeSa CountryCode = "SA" - // CountryCodeSn: Senegal - CountryCodeSn CountryCode = "SN" - // CountryCodeRs: Serbia - CountryCodeRs CountryCode = "RS" - // CountryCodeSc: Seychelles - CountryCodeSc CountryCode = "SC" - // CountryCodeSl: Sierra Leone - CountryCodeSl CountryCode = "SL" - // CountryCodeSg: Singapore - CountryCodeSg CountryCode = "SG" - // CountryCodeSx: Sint Maarten (Dutch part) - CountryCodeSx CountryCode = "SX" - // CountryCodeSk: Slovakia - CountryCodeSk CountryCode = "SK" - // CountryCodeSi: Slovenia - CountryCodeSi CountryCode = "SI" - // CountryCodeSb: Solomon Islands - CountryCodeSb CountryCode = "SB" - // CountryCodeSo: Somalia - CountryCodeSo CountryCode = "SO" - // CountryCodeZa: South Africa - CountryCodeZa CountryCode = "ZA" - // CountryCodeGs: South Georgia and the South Sandwich Islands - CountryCodeGs CountryCode = "GS" - // CountryCodeSs: South Sudan - CountryCodeSs CountryCode = "SS" - // CountryCodeEs: Spain - CountryCodeEs CountryCode = "ES" - // CountryCodeLk: Sri Lanka - CountryCodeLk CountryCode = "LK" - // CountryCodeSd: Sudan - CountryCodeSd CountryCode = "SD" - // CountryCodeSr: Suriname - CountryCodeSr CountryCode = "SR" - // CountryCodeSj: Svalbard and Jan Mayen - CountryCodeSj CountryCode = "SJ" - // CountryCodeSz: Swaziland - CountryCodeSz CountryCode = "SZ" - // CountryCodeSe: Sweden - CountryCodeSe CountryCode = "SE" - // CountryCodeCh: Switzerland - CountryCodeCh CountryCode = "CH" - // CountryCodeSy: Syrian Arab Republic - CountryCodeSy CountryCode = "SY" - // CountryCodeTw: Taiwan, Province of China - CountryCodeTw CountryCode = "TW" - // CountryCodeTj: Tajikistan - CountryCodeTj CountryCode = "TJ" - // CountryCodeTz: Tanzania, United Republic of - CountryCodeTz CountryCode = "TZ" - // CountryCodeTh: Thailand - CountryCodeTh CountryCode = "TH" - // CountryCodeTl: Timor-Leste - CountryCodeTl CountryCode = "TL" - // CountryCodeTg: Togo - CountryCodeTg CountryCode = "TG" - // CountryCodeTk: Tokelau - CountryCodeTk CountryCode = "TK" - // CountryCodeTo: Tonga - CountryCodeTo CountryCode = "TO" - // CountryCodeTt: Trinidad and Tobago - CountryCodeTt CountryCode = "TT" - // CountryCodeTn: Tunisia - CountryCodeTn CountryCode = "TN" - // CountryCodeTr: Turkey - CountryCodeTr CountryCode = "TR" - // CountryCodeTm: Turkmenistan - CountryCodeTm CountryCode = "TM" - // CountryCodeTc: Turks and Caicos Islands - CountryCodeTc CountryCode = "TC" - // CountryCodeTv: Tuvalu - CountryCodeTv CountryCode = "TV" - // CountryCodeUg: Uganda - CountryCodeUg CountryCode = "UG" - // CountryCodeUa: Ukraine - CountryCodeUa CountryCode = "UA" - // CountryCodeAe: United Arab Emirates - CountryCodeAe CountryCode = "AE" - // CountryCodeGb: United Kingdom of Great Britain and Northern Ireland - CountryCodeGb CountryCode = "GB" - // CountryCodeUs: United States of America - CountryCodeUs CountryCode = "US" - // CountryCodeUm: United States Minor Outlying Islands - CountryCodeUm CountryCode = "UM" - // CountryCodeUy: Uruguay - CountryCodeUy CountryCode = "UY" - // CountryCodeUz: Uzbekistan - CountryCodeUz CountryCode = "UZ" - // CountryCodeVu: Vanuatu - CountryCodeVu CountryCode = "VU" - // CountryCodeVe: Venezuela (Bolivarian Republic of) - CountryCodeVe CountryCode = "VE" - // CountryCodeVn: Viet Nam - CountryCodeVn CountryCode = "VN" - // CountryCodeVg: Virgin Islands (British) - CountryCodeVg CountryCode = "VG" - // CountryCodeVi: Virgin Islands (U.S.) - CountryCodeVi CountryCode = "VI" - // CountryCodeWf: Wallis and Futuna - CountryCodeWf CountryCode = "WF" - // CountryCodeEh: Western Sahara - CountryCodeEh CountryCode = "EH" - // CountryCodeYe: Yemen - CountryCodeYe CountryCode = "YE" - // CountryCodeZm: Zambia - CountryCodeZm CountryCode = "ZM" - // CountryCodeZw: Zimbabwe - CountryCodeZw CountryCode = "ZW" -) - // Coupon: The resource representing a Coupon. type Coupon struct { // AmountOff: Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer. - AmountOff float64 `json:"amount_off" yaml:"amount_off" schema:"amount_off"` + AmountOff string `json:"amount_off" yaml:"amount_off" schema:"amount_off"` // Deleted: Always true for a deleted object. Deleted bool `json:"deleted" yaml:"deleted" schema:"deleted"` // ID: Unique identifier for the object. @@ -1315,297 +833,20 @@ const ( CreatedAtSortModeCreatedAtDescending CreatedAtSortMode = "created_at_descending" ) -// Currency: Currency is the list of supported currencies. -// This comes from the Stripe API docs: For more details see . -type Currency string - -const ( - // CurrencyAed: United Arab Emirates Dirham - CurrencyAed Currency = "aed" - // CurrencyAfn: Afghan Afghani - CurrencyAfn Currency = "afn" - // CurrencyAll: Albanian Lek - CurrencyAll Currency = "all" - // CurrencyAmd: Armenian Dram - CurrencyAmd Currency = "amd" - // CurrencyAng: Netherlands Antillean Gulden - CurrencyAng Currency = "ang" - // CurrencyAoa: Angolan Kwanza - CurrencyAoa Currency = "aoa" - // CurrencyArs: Argentine Peso - CurrencyArs Currency = "ars" - // CurrencyAud: Australian Dollar - CurrencyAud Currency = "aud" - // CurrencyAwg: Aruban Florin - CurrencyAwg Currency = "awg" - // CurrencyAzn: Azerbaijani Manat - CurrencyAzn Currency = "azn" - // CurrencyBam: Bosnia & Herzegovina Convertible Mark - CurrencyBam Currency = "bam" - // CurrencyBbd: Barbadian Dollar - CurrencyBbd Currency = "bbd" - // CurrencyBdt: Bangladeshi Taka - CurrencyBdt Currency = "bdt" - // CurrencyBgn: Bulgarian Lev - CurrencyBgn Currency = "bgn" - // CurrencyBif: Burundian Franc - CurrencyBif Currency = "bif" - // CurrencyBmd: Bermudian Dollar - CurrencyBmd Currency = "bmd" - // CurrencyBnd: Brunei Dollar - CurrencyBnd Currency = "bnd" - // CurrencyBob: Bolivian Boliviano - CurrencyBob Currency = "bob" - // CurrencyBrl: Brazilian Real - CurrencyBrl Currency = "brl" - // CurrencyBsd: Bahamian Dollar - CurrencyBsd Currency = "bsd" - // CurrencyBwp: Botswana Pula - CurrencyBwp Currency = "bwp" - // CurrencyBzd: Belize Dollar - CurrencyBzd Currency = "bzd" - // CurrencyCad: Canadian Dollar - CurrencyCad Currency = "cad" - // CurrencyCdf: Congolese Franc - CurrencyCdf Currency = "cdf" - // CurrencyChf: Swiss Franc - CurrencyChf Currency = "chf" - // CurrencyClp: Chilean Peso - CurrencyClp Currency = "clp" - // CurrencyCny: Chinese Renminbi Yuan - CurrencyCny Currency = "cny" - // CurrencyCop: Colombian Peso - CurrencyCop Currency = "cop" - // CurrencyCrc: Costa Rican Colón - CurrencyCrc Currency = "crc" - // CurrencyCve: Cape Verdean Escudo - CurrencyCve Currency = "cve" - // CurrencyCzk: Czech Koruna - CurrencyCzk Currency = "czk" - // CurrencyDjf: Djiboutian Franc - CurrencyDjf Currency = "djf" - // CurrencyDkk: Danish Krone - CurrencyDkk Currency = "dkk" - // CurrencyDop: Dominican Peso - CurrencyDop Currency = "dop" - // CurrencyDzd: Algerian Dinar - CurrencyDzd Currency = "dzd" - // CurrencyEek: Estonian Kroon - CurrencyEek Currency = "eek" - // CurrencyEgp: Egyptian Pound - CurrencyEgp Currency = "egp" - // CurrencyEtb: Ethiopian Birr - CurrencyEtb Currency = "etb" - // CurrencyEur: Euro - CurrencyEur Currency = "eur" - // CurrencyFjd: Fijian Dollar - CurrencyFjd Currency = "fjd" - // CurrencyFkp: Falkland Islands Pound - CurrencyFkp Currency = "fkp" - // CurrencyGbp: British Pound - CurrencyGbp Currency = "gbp" - // CurrencyGel: Georgian Lari - CurrencyGel Currency = "gel" - // CurrencyGip: Gibraltar Pound - CurrencyGip Currency = "gip" - // CurrencyGmd: Gambian Dalasi - CurrencyGmd Currency = "gmd" - // CurrencyGnf: Guinean Franc - CurrencyGnf Currency = "gnf" - // CurrencyGtq: Guatemalan Quetzal - CurrencyGtq Currency = "gtq" - // CurrencyGyd: Guyanese Dollar - CurrencyGyd Currency = "gyd" - // CurrencyHkd: Hong Kong Dollar - CurrencyHkd Currency = "hkd" - // CurrencyHnl: Honduran Lempira - CurrencyHnl Currency = "hnl" - // CurrencyHrk: Croatian Kuna - CurrencyHrk Currency = "hrk" - // CurrencyHtg: Haitian Gourde - CurrencyHtg Currency = "htg" - // CurrencyHuf: Hungarian Forint - CurrencyHuf Currency = "huf" - // CurrencyIdr: Indonesian Rupiah - CurrencyIdr Currency = "idr" - // CurrencyIls: Israeli New Sheqel - CurrencyIls Currency = "ils" - // CurrencyInr: Indian Rupee - CurrencyInr Currency = "inr" - // CurrencyIsk: Icelandic Króna - CurrencyIsk Currency = "isk" - // CurrencyJmd: Jamaican Dollar - CurrencyJmd Currency = "jmd" - // CurrencyJpy: Japanese Yen - CurrencyJpy Currency = "jpy" - // CurrencyKes: Kenyan Shilling - CurrencyKes Currency = "kes" - // CurrencyKgs: Kyrgyzstani Som - CurrencyKgs Currency = "kgs" - // CurrencyKhr: Cambodian Riel - CurrencyKhr Currency = "khr" - // CurrencyKmf: Comorian Franc - CurrencyKmf Currency = "kmf" - // CurrencyKrw: South Korean Won - CurrencyKrw Currency = "krw" - // CurrencyKyd: Cayman Islands Dollar - CurrencyKyd Currency = "kyd" - // CurrencyKzt: Kazakhstani Tenge - CurrencyKzt Currency = "kzt" - // CurrencyLak: Lao Kip - CurrencyLak Currency = "lak" - // CurrencyLbp: Lebanese Pound - CurrencyLbp Currency = "lbp" - // CurrencyLkr: Sri Lankan Rupee - CurrencyLkr Currency = "lkr" - // CurrencyLrd: Liberian Dollar - CurrencyLrd Currency = "lrd" - // CurrencyLsl: Lesotho Loti - CurrencyLsl Currency = "lsl" - // CurrencyLtl: Lithuanian Litas - CurrencyLtl Currency = "ltl" - // CurrencyLvl: Latvian Lats - CurrencyLvl Currency = "lvl" - // CurrencyMad: Moroccan Dirham - CurrencyMad Currency = "mad" - // CurrencyMdl: Moldovan Leu - CurrencyMdl Currency = "mdl" - // CurrencyMga: Malagasy Ariary - CurrencyMga Currency = "mga" - // CurrencyMkd: Macedonian Denar - CurrencyMkd Currency = "mkd" - // CurrencyMnt: Mongolian Tögrög - CurrencyMnt Currency = "mnt" - // CurrencyMop: Macanese Pataca - CurrencyMop Currency = "mop" - // CurrencyMro: Mauritanian Ouguiya - CurrencyMro Currency = "mro" - // CurrencyMur: Mauritian Rupee - CurrencyMur Currency = "mur" - // CurrencyMvr: Maldivian Rufiyaa - CurrencyMvr Currency = "mvr" - // CurrencyMwk: Malawian Kwacha - CurrencyMwk Currency = "mwk" - // CurrencyMxn: Mexican Peso - CurrencyMxn Currency = "mxn" - // CurrencyMyr: Malaysian Ringgit - CurrencyMyr Currency = "myr" - // CurrencyMzn: Mozambican Metical - CurrencyMzn Currency = "mzn" - // CurrencyNad: Namibian Dollar - CurrencyNad Currency = "nad" - // CurrencyNgn: Nigerian Naira - CurrencyNgn Currency = "ngn" - // CurrencyNio: Nicaraguan Córdoba - CurrencyNio Currency = "nio" - // CurrencyNok: Norwegian Krone - CurrencyNok Currency = "nok" - // CurrencyNpr: Nepalese Rupee - CurrencyNpr Currency = "npr" - // CurrencyNzd: New Zealand Dollar - CurrencyNzd Currency = "nzd" - // CurrencyPab: Panamanian Balboa - CurrencyPab Currency = "pab" - // CurrencyPen: Peruvian Nuevo Sol - CurrencyPen Currency = "pen" - // CurrencyPgk: Papua New Guinean Kina - CurrencyPgk Currency = "pgk" - // CurrencyPhp: Philippine Peso - CurrencyPhp Currency = "php" - // CurrencyPkr: Pakistani Rupee - CurrencyPkr Currency = "pkr" - // CurrencyPln: Polish Złoty - CurrencyPln Currency = "pln" - // CurrencyPyg: Paraguayan Guaraní - CurrencyPyg Currency = "pyg" - // CurrencyQar: Qatari Riyal - CurrencyQar Currency = "qar" - // CurrencyRon: Romanian Leu - CurrencyRon Currency = "ron" - // CurrencyRsd: Serbian Dinar - CurrencyRsd Currency = "rsd" - // CurrencyRub: Russian Ruble - CurrencyRub Currency = "rub" - // CurrencyRwf: Rwandan Franc - CurrencyRwf Currency = "rwf" - // CurrencySar: Saudi Riyal - CurrencySar Currency = "sar" - // CurrencySbd: Solomon Islands Dollar - CurrencySbd Currency = "sbd" - // CurrencyScr: Seychellois Rupee - CurrencyScr Currency = "scr" - // CurrencySek: Swedish Krona - CurrencySek Currency = "sek" - // CurrencySgd: Singapore Dollar - CurrencySgd Currency = "sgd" - // CurrencyShp: Saint Helenian Pound - CurrencyShp Currency = "shp" - // CurrencySll: Sierra Leonean Leone - CurrencySll Currency = "sll" - // CurrencySos: Somali Shilling - CurrencySos Currency = "sos" - // CurrencySrd: Surinamese Dollar - CurrencySrd Currency = "srd" - // CurrencyStd: São Tomé and Príncipe Dobra - CurrencyStd Currency = "std" - // CurrencySvc: Salvadoran Colón - CurrencySvc Currency = "svc" - // CurrencySzl: Swazi Lilangeni - CurrencySzl Currency = "szl" - // CurrencyThb: Thai Baht - CurrencyThb Currency = "thb" - // CurrencyTjs: Tajikistani Somoni - CurrencyTjs Currency = "tjs" - // CurrencyTop: Tongan Paʻanga - CurrencyTop Currency = "top" - // CurrencyTry: Turkish Lira - CurrencyTry Currency = "try" - // CurrencyTtd: Trinidad and Tobago Dollar - CurrencyTtd Currency = "ttd" - // CurrencyTwd: New Taiwan Dollar - CurrencyTwd Currency = "twd" - // CurrencyTzs: Tanzanian Shilling - CurrencyTzs Currency = "tzs" - // CurrencyUah: Ukrainian Hryvnia - CurrencyUah Currency = "uah" - // CurrencyUgx: Ugandan Shilling - CurrencyUgx Currency = "ugx" - // CurrencyUsd: United States Dollar - CurrencyUsd Currency = "usd" - // CurrencyUyu: Uruguayan Peso - CurrencyUyu Currency = "uyu" - // CurrencyUzs: Uzbekistani Som - CurrencyUzs Currency = "uzs" - // CurrencyVef: Venezuelan Bolívar - CurrencyVef Currency = "vef" - // CurrencyVnd: Vietnamese Đồng - CurrencyVnd Currency = "vnd" - // CurrencyVuv: Vanuatu Vatu - CurrencyVuv Currency = "vuv" - // CurrencyWst: Samoan Tala - CurrencyWst Currency = "wst" - // CurrencyXaf: Central African Cfa Franc - CurrencyXaf Currency = "xaf" - // CurrencyXcd: East Caribbean Dollar - CurrencyXcd Currency = "xcd" - // CurrencyXof: West African Cfa Franc - CurrencyXof Currency = "xof" - // CurrencyXpf: Cfp Franc - CurrencyXpf Currency = "xpf" - // CurrencyYer: Yemeni Rial - CurrencyYer Currency = "yer" - // CurrencyZar: South African Rand - CurrencyZar Currency = "zar" - // CurrencyZmw: Zambian Kwacha - CurrencyZmw Currency = "zmw" -) - // CurveGetControlPoints: The response from the `CurveGetControlPoints` command. type CurveGetControlPoints struct { // ControlPoints: Control points in the curve. ControlPoints []Point3D `json:"control_points" yaml:"control_points" schema:"control_points,required"` } +// CurveGetEndPoints: Endpoints of a curve +type CurveGetEndPoints struct { + // End: End + End Point3D `json:"end" yaml:"end" schema:"end,required"` + // Start: Start + Start Point3D `json:"start" yaml:"start" schema:"start,required"` +} + // CurveGetType: The response from the `CurveGetType` command. type CurveGetType struct { // CurveType: Curve type @@ -1618,6 +859,8 @@ type CurveType string const ( // CurveTypeLine represents the CurveType `"line"`. CurveTypeLine CurveType = "line" + // CurveTypeArc represents the CurveType `"arc"`. + CurveTypeArc CurveType = "arc" // CurveTypeNurbs represents the CurveType `"nurbs"`. CurveTypeNurbs CurveType = "nurbs" ) @@ -1629,11 +872,11 @@ type Customer struct { // Balance: Current balance, if any, being stored on the customer in the payments service. // // If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized. - Balance float64 `json:"balance" yaml:"balance" schema:"balance"` + Balance string `json:"balance" yaml:"balance" schema:"balance"` // CreatedAt: Time at which the object was created. CreatedAt Time `json:"created_at" yaml:"created_at" schema:"created_at,required"` // Currency: Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes. - Currency Currency `json:"currency" yaml:"currency" schema:"currency"` + Currency string `json:"currency" yaml:"currency" schema:"currency"` // Delinquent: When the customer's latest invoice is billed by charging automatically, `delinquent` is `true` if the invoice's latest charge failed. // // When the customer's latest invoice is billed by sending an invoice, `delinquent` is `true` if the invoice isn't paid by its due date. If an invoice is marked uncollectible by dunning, `delinquent` doesn't get reset to `false`. @@ -1658,13 +901,13 @@ type CustomerBalance struct { // ID: The unique identifier for the balance. ID UUID `json:"id" yaml:"id" schema:"id,required"` // MonthlyCreditsRemaining: The monthy credits remaining in the balance. This gets re-upped every month, but if the credits are not used for a month they do not carry over to the next month. It is a stable amount granted to the user per month. - MonthlyCreditsRemaining float64 `json:"monthly_credits_remaining" yaml:"monthly_credits_remaining" schema:"monthly_credits_remaining,required"` + MonthlyCreditsRemaining string `json:"monthly_credits_remaining" yaml:"monthly_credits_remaining" schema:"monthly_credits_remaining,required"` // PrePayCashRemaining: The amount of pre-pay cash remaining in the balance. This number goes down as the user uses their pre-paid credits. The reason we track this amount is if a user ever wants to withdraw their pre-pay cash, we can use this amount to determine how much to give them. Say a user has $100 in pre-paid cash, their bill is worth, $50 after subtracting any other credits (like monthly etc.) Their bill is $50, their pre-pay cash remaining will be subtracted by 50 to pay the bill and their `pre_pay_credits_remaining` will be subtracted by 50 to pay the bill. This way if they want to withdraw money after, they can only withdraw $50 since that is the amount of cash they have remaining. - PrePayCashRemaining float64 `json:"pre_pay_cash_remaining" yaml:"pre_pay_cash_remaining" schema:"pre_pay_cash_remaining,required"` + PrePayCashRemaining string `json:"pre_pay_cash_remaining" yaml:"pre_pay_cash_remaining" schema:"pre_pay_cash_remaining,required"` // PrePayCreditsRemaining: The amount of credits remaining in the balance. This is typically the amount of cash * some multiplier they get for pre-paying their account. This number lowers every time a bill is paid with the balance. This number increases every time a user adds funds to their balance. This may be through a subscription or a one off payment. - PrePayCreditsRemaining float64 `json:"pre_pay_credits_remaining" yaml:"pre_pay_credits_remaining" schema:"pre_pay_credits_remaining,required"` + PrePayCreditsRemaining string `json:"pre_pay_credits_remaining" yaml:"pre_pay_credits_remaining" schema:"pre_pay_credits_remaining,required"` // TotalDue: This includes any outstanding, draft, or open invoices and any pending invoice items. This does not include any credits the user has on their account. - TotalDue float64 `json:"total_due" yaml:"total_due" schema:"total_due,required"` + TotalDue string `json:"total_due" yaml:"total_due" schema:"total_due,required"` // UpdatedAt: The date and time the balance was last updated. UpdatedAt Time `json:"updated_at" yaml:"updated_at" schema:"updated_at,required"` // UserID: The user ID the balance belongs to. @@ -1677,6 +920,14 @@ type Data struct { Files []RawFile `json:"files" yaml:"files" schema:"files,required"` } +// Density: The density response. +type Density struct { + // Density: The density. + Density float64 `json:"density" yaml:"density" schema:"density,required"` + // OutputUnit: The output unit for the density. + OutputUnit UnitDensity `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` +} + // DeviceAccessTokenRequestForm: The form for a device access token request. type DeviceAccessTokenRequestForm struct { // ClientID: The client ID. @@ -1715,144 +966,6 @@ type Discount struct { Coupon Coupon `json:"coupon" yaml:"coupon" schema:"coupon,required"` } -// DockerSystemInfo: Docker system info. -type DockerSystemInfo struct { - // Architecture: Hardware architecture of the host, as returned by the Go runtime (`GOARCH`). A full list of possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment). - Architecture string `json:"architecture" yaml:"architecture" schema:"architecture"` - // BridgeNfIp6Tables: Indicates if `bridge-nf-call-ip6tables` is available on the host. - BridgeNfIp6Tables bool `json:"bridge_nf_ip6tables" yaml:"bridge_nf_ip6tables" schema:"bridge_nf_ip6tables"` - // BridgeNfIptables: Indicates if `bridge-nf-call-iptables` is available on the host. - BridgeNfIptables bool `json:"bridge_nf_iptables" yaml:"bridge_nf_iptables" schema:"bridge_nf_iptables"` - // CgroupDriver: The driver to use for managing cgroups. - CgroupDriver SystemInfoCgroupDriverEnum `json:"cgroup_driver" yaml:"cgroup_driver" schema:"cgroup_driver"` - // CgroupVersion: The version of the cgroup. - CgroupVersion SystemInfoCgroupVersionEnum `json:"cgroup_version" yaml:"cgroup_version" schema:"cgroup_version"` - // ClusterAdvertise: The network endpoint that the Engine advertises for the purpose of node discovery. ClusterAdvertise is a `host:port` combination on which the daemon is reachable by other hosts. - // - // **Deprecated**: This field is only propagated when using standalone Swarm mode, and overlay networking using an external k/v store. Overlay networks with Swarm mode enabled use the built-in raft store, and this field will be empty. - ClusterAdvertise string `json:"cluster_advertise" yaml:"cluster_advertise" schema:"cluster_advertise"` - // ClusterStore: URL of the distributed storage backend. The storage backend is used for multihost networking (to store network and endpoint information) and by the node discovery mechanism. - // - // **Deprecated**: This field is only propagated when using standalone Swarm mode, and overlay networking using an external k/v store. Overlay networks with Swarm mode enabled use the built-in raft store, and this field will be empty. - ClusterStore string `json:"cluster_store" yaml:"cluster_store" schema:"cluster_store"` - // ContainerdCommit: - ContainerdCommit Commit `json:"containerd_commit" yaml:"containerd_commit" schema:"containerd_commit"` - // Containers: Total number of containers on the host. - Containers int `json:"containers" yaml:"containers" schema:"containers"` - // ContainersPaused: Number of containers with status `\"paused\"`. - ContainersPaused int `json:"containers_paused" yaml:"containers_paused" schema:"containers_paused"` - // ContainersRunning: Number of containers with status `\"running\"`. - ContainersRunning int `json:"containers_running" yaml:"containers_running" schema:"containers_running"` - // ContainersStopped: Number of containers with status `\"stopped\"`. - ContainersStopped int `json:"containers_stopped" yaml:"containers_stopped" schema:"containers_stopped"` - // CpuCfsPeriod: Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host. - CpuCfsPeriod bool `json:"cpu_cfs_period" yaml:"cpu_cfs_period" schema:"cpu_cfs_period"` - // CpuCfsQuota: Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host. - CpuCfsQuota bool `json:"cpu_cfs_quota" yaml:"cpu_cfs_quota" schema:"cpu_cfs_quota"` - // CpuSet: Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host. See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt) - CpuSet bool `json:"cpu_set" yaml:"cpu_set" schema:"cpu_set"` - // CpuShares: Indicates if CPU Shares limiting is supported by the host. - CpuShares bool `json:"cpu_shares" yaml:"cpu_shares" schema:"cpu_shares"` - // Debug: Indicates if the daemon is running in debug-mode / with debug-level logging enabled. - Debug bool `json:"debug" yaml:"debug" schema:"debug"` - // DefaultAddressPools: List of custom default address pools for local networks, which can be specified in the daemon.json file or dockerd option. Example: a Base \"10.10.0.0/16\" with Size 24 will define the set of 256 10.10.[0-255].0/24 address pools. - DefaultAddressPools []SystemInfoDefaultAddressPools `json:"default_address_pools" yaml:"default_address_pools" schema:"default_address_pools"` - // DefaultRuntime: Name of the default OCI runtime that is used when starting containers. The default can be overridden per-container at create time. - DefaultRuntime string `json:"default_runtime" yaml:"default_runtime" schema:"default_runtime"` - // DockerRootDir: Root directory of persistent Docker state. Defaults to `/var/lib/docker` on Linux, and `C:\\ProgramData\\docker` on Windows. - DockerRootDir string `json:"docker_root_dir" yaml:"docker_root_dir" schema:"docker_root_dir"` - // Driver: Name of the storage driver in use. - Driver string `json:"driver" yaml:"driver" schema:"driver"` - // DriverStatus: Information specific to the storage driver, provided as \"label\" / \"value\" pairs. This information is provided by the storage driver, and formatted in a way consistent with the output of `docker info` on the command line. - // - // **Note**: The information returned in this field, including the formatting of values and labels, should not be considered stable, and may change without notice. - DriverStatus [][]string `json:"driver_status" yaml:"driver_status" schema:"driver_status"` - // ExperimentalBuild: Indicates if experimental features are enabled on the daemon. - ExperimentalBuild bool `json:"experimental_build" yaml:"experimental_build" schema:"experimental_build"` - // HttpProxy: HTTP-proxy configured for the daemon. This value is obtained from the [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL are masked in the API response. Containers do not automatically inherit this configuration. - HttpProxy string `json:"http_proxy" yaml:"http_proxy" schema:"http_proxy"` - // HttpsProxy: HTTPS-proxy configured for the daemon. This value is obtained from the [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL are masked in the API response. Containers do not automatically inherit this configuration. - HttpsProxy string `json:"https_proxy" yaml:"https_proxy" schema:"https_proxy"` - // ID: Unique identifier of the daemon. - // - // **Note**: The format of the ID itself is not part of the API, and should not be considered stable. - ID string `json:"id" yaml:"id" schema:"id"` - // Images: Total number of images on the host. Both _tagged_ and _untagged_ (dangling) images are counted. - Images int `json:"images" yaml:"images" schema:"images"` - // IndexServerAddress: Address / URL of the index server that is used for image search, and as a default for user authentication for Docker Hub and Docker Cloud. - IndexServerAddress string `json:"index_server_address" yaml:"index_server_address" schema:"index_server_address"` - // InitBinary: Name and, optional, path of the `docker-init` binary. If the path is omitted, the daemon searches the host's `$PATH` for the binary and uses the first result. - InitBinary string `json:"init_binary" yaml:"init_binary" schema:"init_binary"` - // InitCommit: - InitCommit Commit `json:"init_commit" yaml:"init_commit" schema:"init_commit"` - // Ipv4Forwarding: Indicates IPv4 forwarding is enabled. - Ipv4Forwarding bool `json:"ipv4_forwarding" yaml:"ipv4_forwarding" schema:"ipv4_forwarding"` - // Isolation: Represents the isolation technology to use as a default for containers. The supported values are platform-specific. If no isolation value is specified on daemon start, on Windows client, the default is `hyperv`, and on Windows server, the default is `process`. This option is currently not used on other platforms. - Isolation SystemInfoIsolationEnum `json:"isolation" yaml:"isolation" schema:"isolation"` - // KernelMemory: Indicates if the host has kernel memory limit support enabled. - // - // **Deprecated**: This field is deprecated as the kernel 5.4 deprecated `kmem.limit_in_bytes`. - KernelMemory bool `json:"kernel_memory" yaml:"kernel_memory" schema:"kernel_memory"` - // KernelMemoryTcp: Indicates if the host has kernel memory TCP limit support enabled. Kernel memory TCP limits are not supported when using cgroups v2, which does not support the corresponding `memory.kmem.tcp.limit_in_bytes` cgroup. - KernelMemoryTcp bool `json:"kernel_memory_tcp" yaml:"kernel_memory_tcp" schema:"kernel_memory_tcp"` - // KernelVersion: Kernel version of the host. On Linux, this information obtained from `uname`. On Windows this information is queried from the HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\ registry value, for example _\"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)\"_. - KernelVersion string `json:"kernel_version" yaml:"kernel_version" schema:"kernel_version"` - // Labels: User-defined labels (key/value metadata) as set on the daemon. - // - // **Note**: When part of a Swarm, nodes can both have _daemon_ labels, set through the daemon configuration, and _node_ labels, set from a manager node in the Swarm. Node labels are not included in this field. Node labels can be retrieved using the `/nodes/(id)` endpoint on a manager node in the Swarm. - Labels []string `json:"labels" yaml:"labels" schema:"labels"` - // LiveRestoreEnabled: Indicates if live restore is enabled. If enabled, containers are kept running when the daemon is shutdown or upon daemon start if running containers are detected. - LiveRestoreEnabled bool `json:"live_restore_enabled" yaml:"live_restore_enabled" schema:"live_restore_enabled"` - // LoggingDriver: The logging driver to use as a default for new containers. - LoggingDriver string `json:"logging_driver" yaml:"logging_driver" schema:"logging_driver"` - // MemTotal: Total amount of physical memory available on the host, in bytes. - MemTotal int `json:"mem_total" yaml:"mem_total" schema:"mem_total"` - // MemoryLimit: Indicates if the host has memory limit support enabled. - MemoryLimit bool `json:"memory_limit" yaml:"memory_limit" schema:"memory_limit"` - // NEventsListener: Number of event listeners subscribed. - NEventsListener int `json:"n_events_listener" yaml:"n_events_listener" schema:"n_events_listener"` - // NFd: The total number of file Descriptors in use by the daemon process. This information is only returned if debug-mode is enabled. - NFd int `json:"n_fd" yaml:"n_fd" schema:"n_fd"` - // Name: Hostname of the host. - Name string `json:"name" yaml:"name" schema:"name"` - // Ncpu: The number of logical CPUs usable by the daemon. The number of available CPUs is checked by querying the operating system when the daemon starts. Changes to operating system CPU allocation after the daemon is started are not reflected. - Ncpu int `json:"ncpu" yaml:"ncpu" schema:"ncpu"` - // NoProxy: Comma-separated list of domain extensions for which no proxy should be used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable. Containers do not automatically inherit this configuration. - NoProxy string `json:"no_proxy" yaml:"no_proxy" schema:"no_proxy"` - // OomKillDisable: Indicates if OOM killer disable is supported on the host. - OomKillDisable bool `json:"oom_kill_disable" yaml:"oom_kill_disable" schema:"oom_kill_disable"` - // OperatingSystem: Name of the host's operating system, for example: \"Ubuntu 16.04.2 LTS\" or \"Windows Server 2016 Datacenter\" - OperatingSystem string `json:"operating_system" yaml:"operating_system" schema:"operating_system"` - // OsType: Generic type of the operating system of the host, as returned by the Go runtime (`GOOS`). Currently returned values are \"linux\" and \"windows\". A full list of possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment). - OsType string `json:"os_type" yaml:"os_type" schema:"os_type"` - // OsVersion: Version of the host's operating system - // - // **Note**: The information returned in this field, including its very existence, and the formatting of values, should not be considered stable, and may change without notice. - OsVersion string `json:"os_version" yaml:"os_version" schema:"os_version"` - // PidsLimit: Indicates if the host kernel has PID limit support enabled. - PidsLimit bool `json:"pids_limit" yaml:"pids_limit" schema:"pids_limit"` - // Plugins: - Plugins PluginsInfo `json:"plugins" yaml:"plugins" schema:"plugins"` - // ProductLicense: Reports a summary of the product license on the daemon. If a commercial license has been applied to the daemon, information such as number of nodes, and expiration are included. - ProductLicense string `json:"product_license" yaml:"product_license" schema:"product_license"` - // RegistryConfig: - RegistryConfig RegistryServiceConfig `json:"registry_config" yaml:"registry_config" schema:"registry_config"` - // RuncCommit: - RuncCommit Commit `json:"runc_commit" yaml:"runc_commit" schema:"runc_commit"` - // Runtimes: - Runtimes map[string]Runtime `json:"runtimes" yaml:"runtimes" schema:"runtimes"` - // SecurityOptions: List of security features that are enabled on the daemon, such as apparmor, seccomp, SELinux, user-namespaces (userns), and rootless. Additional configuration options for each security feature may be present, and are included as a comma-separated list of key/value pairs. - SecurityOptions []string `json:"security_options" yaml:"security_options" schema:"security_options"` - // ServerVersion: Version string of the daemon. **Note**: the [standalone Swarm API](https://docs.docker.com/swarm/swarm-api/) returns the Swarm version instead of the daemon version, for example `swarm/1.2.8`. - ServerVersion string `json:"server_version" yaml:"server_version" schema:"server_version"` - // SwapLimit: Indicates if the host has memory swap limit support enabled. - SwapLimit bool `json:"swap_limit" yaml:"swap_limit" schema:"swap_limit"` - // SystemTime: The number of goroutines that currently exist. This information is only returned if debug-mode is enabled. - SystemTime string `json:"system_time" yaml:"system_time" schema:"system_time"` - // Warnings: List of warnings / informational messages about missing features, or issues related to the daemon configuration. These messages can be printed by the client as information to the user. - Warnings []string `json:"warnings" yaml:"warnings" schema:"warnings"` -} - // EmailAuthenticationForm: The body of the form for email authentication. type EmailAuthenticationForm struct { // CallbackUrl: The URL to redirect back to after we have authenticated. @@ -1861,23 +974,6 @@ type EmailAuthenticationForm struct { Email string `json:"email" yaml:"email" schema:"email,required"` } -// EngineMetadata: Metadata about our currently running server. -// This is mostly used for internal purposes and debugging. -type EngineMetadata struct { - // AsyncJobsRunning: If any async job is currently running. - AsyncJobsRunning bool `json:"async_jobs_running" yaml:"async_jobs_running" schema:"async_jobs_running,required"` - // Cache: Metadata about our cache. - Cache CacheMetadata `json:"cache" yaml:"cache" schema:"cache,required"` - // Environment: The environment we are running in. - Environment Environment `json:"environment" yaml:"environment" schema:"environment,required"` - // Fs: Metadata about our file system. - Fs FileSystemMetadata `json:"fs" yaml:"fs" schema:"fs,required"` - // GitHash: The git hash of the server. - GitHash string `json:"git_hash" yaml:"git_hash" schema:"git_hash,required"` - // Pubsub: Metadata about our pub-sub connection. - Pubsub Connection `json:"pubsub" yaml:"pubsub" schema:"pubsub,required"` -} - // EntityGetAllChildUuids: The response from the `EntityGetAllChildUuids` command. type EntityGetAllChildUuids struct { // EntityIds: The UUIDs of the child entities. @@ -1960,6 +1056,10 @@ const ( ErrorCodeBadRequest ErrorCode = "bad_request" // ErrorCodeInvalidJson: Client sent invalid JSON. ErrorCodeInvalidJson ErrorCode = "invalid_json" + // ErrorCodeInvalidBson: Client sent invalid BSON. + ErrorCodeInvalidBson ErrorCode = "invalid_bson" + // ErrorCodeWrongProtocol: Client sent a message which is not accepted over this protocol. + ErrorCodeWrongProtocol ErrorCode = "wrong_protocol" // ErrorCodeConnectionProblem: Problem sending data between client and KittyCAD API. ErrorCodeConnectionProblem ErrorCode = "connection_problem" // ErrorCodeMessageTypeNotAccepted: Client sent a Websocket message type which the KittyCAD API does not handle. @@ -1968,17 +1068,6 @@ const ( ErrorCodeMessageTypeNotAcceptedForWebRTC ErrorCode = "message_type_not_accepted_for_web_r_t_c" ) -// ExecutorMetadata: Metadata about our currently running server. -// This is mostly used for internal purposes and debugging. -type ExecutorMetadata struct { - // DockerInfo: Information about the docker daemon. - DockerInfo DockerSystemInfo `json:"docker_info" yaml:"docker_info" schema:"docker_info,required"` - // Environment: The environment we are running in. - Environment Environment `json:"environment" yaml:"environment" schema:"environment,required"` - // GitHash: The git hash of the server. - GitHash string `json:"git_hash" yaml:"git_hash" schema:"git_hash,required"` -} - // Export: The response from the `Export` endpoint. type Export struct { // Files: The files that were exported. @@ -2385,18 +1474,18 @@ const ( ImageTypeJpg ImageType = "jpg" ) -// IndexInfo: IndexInfo contains information about a registry. -type IndexInfo struct { - // Mirrors: List of mirrors, expressed as URIs. - Mirrors []string `json:"mirrors" yaml:"mirrors" schema:"mirrors"` - // Name: Name of the registry, such as \"docker.io\". - Name string `json:"name" yaml:"name" schema:"name"` - // Official: Indicates whether this is an official registry (i.e., Docker Hub / docker.io) - Official bool `json:"official" yaml:"official" schema:"official"` - // Secure: Indicates if the registry is part of the list of insecure registries. If `false`, the registry is insecure. Insecure registries accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from unknown CAs) communication. - // - // **Warning**: Insecure registries can be useful when running a local registry. However, because its use creates security vulnerabilities it should ONLY be enabled for testing purposes. For increased security, users should add their CA to their system's list of trusted CAs instead of enabling this option. - Secure bool `json:"secure" yaml:"secure" schema:"secure"` +// ImportFile: File to import into the current model +type ImportFile struct { + // Data: The raw bytes of the file + Data []int `json:"data" yaml:"data" schema:"data,required"` + // Path: The file's full path, including file extension. + Path string `json:"path" yaml:"path" schema:"path,required"` +} + +// ImportFiles: Data from importing the files +type ImportFiles struct { + // ObjectID: ID of the imported 3D models within the scene. + ObjectID UUID `json:"object_id" yaml:"object_id" schema:"object_id,required"` } // InputFormatCoords: Wavefront OBJ format. @@ -2410,6 +1499,8 @@ type InputFormatCoords struct { // Type: Type string `json:"type" yaml:"type" schema:"type,required"` // Units: The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. + // + // Defaults to meters. Units UnitLength `json:"units" yaml:"units" schema:"units,required"` } @@ -2470,11 +1561,11 @@ type Invoice struct { // AmountDue: Final amount due at this time for this invoice. // // If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`. - AmountDue float64 `json:"amount_due" yaml:"amount_due" schema:"amount_due"` + AmountDue string `json:"amount_due" yaml:"amount_due" schema:"amount_due"` // AmountPaid: The amount, in USD, that was paid. - AmountPaid float64 `json:"amount_paid" yaml:"amount_paid" schema:"amount_paid"` + AmountPaid string `json:"amount_paid" yaml:"amount_paid" schema:"amount_paid"` // AmountRemaining: The amount remaining, in USD, that is due. - AmountRemaining float64 `json:"amount_remaining" yaml:"amount_remaining" schema:"amount_remaining"` + AmountRemaining string `json:"amount_remaining" yaml:"amount_remaining" schema:"amount_remaining"` // AttemptCount: Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. // // Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule. @@ -2486,7 +1577,7 @@ type Invoice struct { // CreatedAt: Time at which the object was created. CreatedAt Time `json:"created_at" yaml:"created_at" schema:"created_at,required"` // Currency: Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. - Currency Currency `json:"currency" yaml:"currency" schema:"currency"` + Currency string `json:"currency" yaml:"currency" schema:"currency"` // CustomerEmail: The email address for the customer. Until the invoice is finalized, this field will equal customer.email. Once the invoice is finalized, this field will no longer be updated. CustomerEmail string `json:"customer_email" yaml:"customer_email" schema:"customer_email"` // CustomerID: Customer ID. The unique identifier for the customer this invoice belongs to. This is the customer ID in the payments service, not our database customer ID. @@ -2524,13 +1615,13 @@ type Invoice struct { // Subtotal: Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied. // // Item discounts are already incorporated. - Subtotal float64 `json:"subtotal" yaml:"subtotal" schema:"subtotal"` + Subtotal string `json:"subtotal" yaml:"subtotal" schema:"subtotal"` // Tax: The amount of tax on this invoice. // // This is the sum of all the tax amounts on this invoice. - Tax float64 `json:"tax" yaml:"tax" schema:"tax"` + Tax string `json:"tax" yaml:"tax" schema:"tax"` // Total: Total after discounts and taxes. - Total float64 `json:"total" yaml:"total" schema:"total"` + Total string `json:"total" yaml:"total" schema:"total"` // Url: The URL for the hosted invoice page, which allows customers to view and pay an invoice. Url URL `json:"url" yaml:"url" schema:"url"` } @@ -2538,9 +1629,9 @@ type Invoice struct { // InvoiceLineItem: An invoice line item. type InvoiceLineItem struct { // Amount: The amount, in USD. - Amount float64 `json:"amount" yaml:"amount" schema:"amount"` + Amount string `json:"amount" yaml:"amount" schema:"amount"` // Currency: Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. - Currency Currency `json:"currency" yaml:"currency" schema:"currency"` + Currency string `json:"currency" yaml:"currency" schema:"currency"` // Description: The description. Description string `json:"description" yaml:"description" schema:"description"` // ID: Unique identifier for the object. @@ -2633,6 +1724,14 @@ type LeafNode struct { TlsTimeout int `json:"tls_timeout" yaml:"tls_timeout" schema:"tls_timeout"` } +// Mass: The mass response. +type Mass struct { + // Mass: The mass. + Mass float64 `json:"mass" yaml:"mass" schema:"mass,required"` + // OutputUnit: The output unit for the mass. + OutputUnit UnitMas `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` +} + // Mesh is the type definition for a Mesh. type Mesh struct { // Mesh: @@ -2654,12 +1753,8 @@ type MetaClusterInfo struct { type Metadata struct { // Cache: Metadata about our cache. Cache CacheMetadata `json:"cache" yaml:"cache" schema:"cache,required"` - // Engine: Metadata about our engine API connection. - Engine EngineMetadata `json:"engine" yaml:"engine" schema:"engine,required"` // Environment: The environment we are running in. Environment Environment `json:"environment" yaml:"environment" schema:"environment,required"` - // Executor: Metadata about our executor API connection. - Executor ExecutorMetadata `json:"executor" yaml:"executor" schema:"executor,required"` // Fs: Metadata about our file system. Fs FileSystemMetadata `json:"fs" yaml:"fs" schema:"fs,required"` // GitHash: The git hash of the server. @@ -2749,14 +1844,8 @@ type ModelingCmdCenter struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdChildIndex: Enable sketch mode on the given plane. +// ModelingCmdChildIndex: Disable sketch mode. type ModelingCmdChildIndex struct { - // Animated: Animate the transition to sketch mode. - Animated bool `json:"animated" yaml:"animated" schema:"animated,required"` - // Ortho: Use an orthographic camera. - Ortho bool `json:"ortho" yaml:"ortho" schema:"ortho,required"` - // PlaneID: Sketch on this plane. - PlaneID UUID `json:"plane_id" yaml:"plane_id" schema:"plane_id,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -2767,6 +1856,10 @@ type ModelingCmdClosePath struct { EntityIds []UUID `json:"entity_ids" yaml:"entity_ids" schema:"entity_ids,required"` // Format: The file format to export to. Format any `json:"format" yaml:"format" schema:"format,required"` + // SourceUnit: Select the unit interpretation of exported objects. + // + // This is not the same as the export units. Setting export units is part of the format options. + SourceUnit UnitLength `json:"source_unit" yaml:"source_unit" schema:"source_unit,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -2829,12 +1922,14 @@ type ModelingCmdDistanceToPlane struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdEditModeEnter: Query the given path +// ModelingCmdEditModeEnter: Get curves for vertices within a path type ModelingCmdEditModeEnter struct { // PathID: Which path to query PathID UUID `json:"path_id" yaml:"path_id" schema:"path_id,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` + // VertexIds: IDs of the vertices for which to obtain curve ids from + VertexIds []UUID `json:"vertex_ids" yaml:"vertex_ids" schema:"vertex_ids,required"` } // ModelingCmdEditModeExit: Start dragging mouse. @@ -2845,15 +1940,25 @@ type ModelingCmdEditModeExit struct { Window Point2D `json:"window" yaml:"window" schema:"window,required"` } -// ModelingCmdEntityGetAllChildUuids: Take a snapshot. +// ModelingCmdEntities: Find the start and end of a curve. +type ModelingCmdEntities struct { + // CurveID: ID of the curve being queried. + CurveID UUID `json:"curve_id" yaml:"curve_id" schema:"curve_id,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// ModelingCmdEntityGetAllChildUuids: Add a gizmo showing the axes. type ModelingCmdEntityGetAllChildUuids struct { - // Format: What image format to return. - Format ImageFormat `json:"format" yaml:"format" schema:"format,required"` + // Clobber: If true, any existing drawables within the obj will be replaced (the object will be reset) + Clobber bool `json:"clobber" yaml:"clobber" schema:"clobber,required"` + // GizmoMode: If true, axes gizmo will be placed in the corner of the screen. If false, it will be placed at the origin of the scene. + GizmoMode bool `json:"gizmo_mode" yaml:"gizmo_mode" schema:"gizmo_mode,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdEntityGetChildUuid: Get type of a given curve. +// ModelingCmdEntityGetChildUuid: Get control points of a given curve. type ModelingCmdEntityGetChildUuid struct { // CurveID: Which curve to query. CurveID UUID `json:"curve_id" yaml:"curve_id" schema:"curve_id,required"` @@ -2861,28 +1966,32 @@ type ModelingCmdEntityGetChildUuid struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdEntityGetNumChildren: Send a mouse click event. Updates modified/selected entities. +// ModelingCmdEntityGetNumChildren: Enable sketch mode on the given plane. type ModelingCmdEntityGetNumChildren struct { + // Animated: Animate the transition to sketch mode. + Animated bool `json:"animated" yaml:"animated" schema:"animated,required"` + // Ortho: Use an orthographic camera. + Ortho bool `json:"ortho" yaml:"ortho" schema:"ortho,required"` + // PlaneID: Sketch on this plane. + PlaneID UUID `json:"plane_id" yaml:"plane_id" schema:"plane_id,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` - // Window: Where the mouse is - Window Point2D `json:"window" yaml:"window" schema:"window,required"` } -// ModelingCmdEntityGetParentID: Set the active tool. +// ModelingCmdEntityGetParentID: Send a mouse move event. type ModelingCmdEntityGetParentID struct { - // Tool: What tool should be active. - Tool SceneToolType `json:"tool" yaml:"tool" schema:"tool,required"` + // Sequence: Logical timestamp. The client should increment this with every event in the current mouse drag. That way, if the events are being sent over an unordered channel, the API can ignore the older events. + Sequence int `json:"sequence" yaml:"sequence" schema:"sequence"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` + // Window: Where the mouse is + Window Point2D `json:"window" yaml:"window" schema:"window,required"` } -// ModelingCmdEntityID: Set the plane's color. +// ModelingCmdEntityID: Set the active tool. type ModelingCmdEntityID struct { - // Color: What color it should be. - Color Color `json:"color" yaml:"color" schema:"color,required"` - // PlaneID: Which plane is being changed. - PlaneID UUID `json:"plane_id" yaml:"plane_id" schema:"plane_id,required"` + // Tool: What tool should be active. + Tool SceneToolType `json:"tool" yaml:"tool" schema:"tool,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -2897,20 +2006,14 @@ type ModelingCmdEntityIds struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdExport: Make a plane. +// ModelingCmdExport: Set the plane's color. type ModelingCmdExport struct { - // Clobber: If true, any existing drawables within the obj will be replaced (the object will be reset) - Clobber bool `json:"clobber" yaml:"clobber" schema:"clobber,required"` - // Origin: Origin of the plane - Origin Point3D `json:"origin" yaml:"origin" schema:"origin,required"` - // Size: What should the plane's span/extent? When rendered visually, this is both the width and height along X and Y axis respectively. - Size float64 `json:"size" yaml:"size" schema:"size,required"` + // Color: What color it should be. + Color Color `json:"color" yaml:"color" schema:"color,required"` + // PlaneID: Which plane is being changed. + PlaneID UUID `json:"plane_id" yaml:"plane_id" schema:"plane_id,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` - // XAxis: What should the plane's X axis be? - XAxis Point3D `json:"x_axis" yaml:"x_axis" schema:"x_axis,required"` - // YAxis: What should the plane's Y axis be? - YAxis Point3D `json:"y_axis" yaml:"y_axis" schema:"y_axis,required"` } // ModelingCmdExtendPath: Camera drag continued. @@ -2975,10 +2078,26 @@ type ModelingCmdMagnitude struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdModelingCmdEntityID: Get control points of a given curve. +// ModelingCmdModelingCmdEntities: Get the density of entities in the scene or the default scene. +type ModelingCmdModelingCmdEntities struct { + // EntityIds: IDs of the entities to get the density of. If this is empty, then the default scene is included in the density. + EntityIds []UUID `json:"entity_ids" yaml:"entity_ids" schema:"entity_ids,required"` + // MaterialMass: The material mass. + MaterialMass float64 `json:"material_mass" yaml:"material_mass" schema:"material_mass,required"` + // MaterialMassUnit: The material mass unit. + MaterialMassUnit UnitMas `json:"material_mass_unit" yaml:"material_mass_unit" schema:"material_mass_unit,required"` + // OutputUnit: The output unit for the density. + OutputUnit UnitDensity `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // SourceUnit: Select the unit interpretation of distances in the scene. + SourceUnit UnitLength `json:"source_unit" yaml:"source_unit" schema:"source_unit,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// ModelingCmdModelingCmdEntityID: Take a snapshot. type ModelingCmdModelingCmdEntityID struct { - // CurveID: Which curve to query. - CurveID UUID `json:"curve_id" yaml:"curve_id" schema:"curve_id,required"` + // Format: What image format to return. + Format ImageFormat `json:"format" yaml:"format" schema:"format,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -2997,12 +2116,22 @@ type ModelingCmdModelingCmdPath struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdModelingCmdTarget: Add a gizmo showing the axes. +// ModelingCmdModelingCmdSelectedAtWindow: Get the surface area of entities in the scene or the default scene. +type ModelingCmdModelingCmdSelectedAtWindow struct { + // EntityIds: IDs of the entities to get the surface area of. If this is empty, then the default scene is included in the surface area. + EntityIds []UUID `json:"entity_ids" yaml:"entity_ids" schema:"entity_ids,required"` + // OutputUnit: The output unit for the surface area. + OutputUnit UnitArea `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // SourceUnit: Select the unit interpretation of distances in the scene. + SourceUnit UnitLength `json:"source_unit" yaml:"source_unit" schema:"source_unit,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// ModelingCmdModelingCmdTarget: Query the given path type ModelingCmdModelingCmdTarget struct { - // Clobber: If true, any existing drawables within the obj will be replaced (the object will be reset) - Clobber bool `json:"clobber" yaml:"clobber" schema:"clobber,required"` - // GizmoMode: If true, axes gizmo will be placed in the corner of the screen. If false, it will be placed at the origin of the scene. - GizmoMode bool `json:"gizmo_mode" yaml:"gizmo_mode" schema:"gizmo_mode,required"` + // PathID: Which path to query + PathID UUID `json:"path_id" yaml:"path_id" schema:"path_id,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -3065,20 +2194,6 @@ type ModelingCmdPathID struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingCmdReq: A graphics command submitted to the KittyCAD engine via the Modeling API. -type ModelingCmdReq struct { - // Cmd: Which command to submit to the Kittycad engine. - Cmd any `json:"cmd" yaml:"cmd" schema:"cmd,required"` - // CmdID: ID of command being submitted. - CmdID UUID `json:"cmd_id" yaml:"cmd_id" schema:"cmd_id,required"` -} - -// ModelingCmdReqBatch: A batch set of graphics commands submitted to the KittyCAD engine via the Modeling API. -type ModelingCmdReqBatch struct { - // Cmds: - Cmds map[string]ModelingCmdReq `json:"cmds" yaml:"cmds" schema:"cmds,required"` -} - // ModelingCmdSegment: Camera drag started. type ModelingCmdSegment struct { // Interaction: The type of camera drag interaction. @@ -3089,6 +2204,68 @@ type ModelingCmdSegment struct { Window Point2D `json:"window" yaml:"window" schema:"window,required"` } +// ModelingCmdSelectAdd: Reconfigure the stream. +type ModelingCmdSelectAdd struct { + // Fps: Frames per second. + Fps int `json:"fps" yaml:"fps" schema:"fps,required"` + // Height: Height of the stream. + Height int `json:"height" yaml:"height" schema:"height,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` + // Width: Width of the stream. + Width int `json:"width" yaml:"width" schema:"width,required"` +} + +// ModelingCmdSelectClear: Utility method. Performs both a ray cast and projection to plane-local coordinates. Returns the plane coordinates for the given window coordinates. +type ModelingCmdSelectClear struct { + // PlaneID: The plane you're intersecting against. + PlaneID UUID `json:"plane_id" yaml:"plane_id" schema:"plane_id,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` + // Window: Window coordinates where the ray cast should be aimed. + Window Point2D `json:"window" yaml:"window" schema:"window,required"` +} + +// ModelingCmdSelectGet: Get the center of mass of entities in the scene or the default scene. +type ModelingCmdSelectGet struct { + // EntityIds: IDs of the entities to get the center of mass of. If this is empty, then the default scene is included in the center of mass. + EntityIds []UUID `json:"entity_ids" yaml:"entity_ids" schema:"entity_ids,required"` + // OutputUnit: The output unit for the center of mass. + OutputUnit UnitLength `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // SourceUnit: Select the unit interpretation of distances in the scene. + SourceUnit UnitLength `json:"source_unit" yaml:"source_unit" schema:"source_unit,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// ModelingCmdSelectRemove: Get the mass of entities in the scene or the default scene. +type ModelingCmdSelectRemove struct { + // EntityIds: IDs of the entities to get the mass of. If this is empty, then the default scene is included in the mass. + EntityIds []UUID `json:"entity_ids" yaml:"entity_ids" schema:"entity_ids,required"` + // MaterialDensity: The material density. + MaterialDensity float64 `json:"material_density" yaml:"material_density" schema:"material_density,required"` + // MaterialDensityUnit: The material density unit. + MaterialDensityUnit UnitDensity `json:"material_density_unit" yaml:"material_density_unit" schema:"material_density_unit,required"` + // OutputUnit: The output unit for the mass. + OutputUnit UnitMas `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // SourceUnit: Select the unit interpretation of distances in the scene. + SourceUnit UnitLength `json:"source_unit" yaml:"source_unit" schema:"source_unit,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// ModelingCmdSelectReplace: Get the volume of entities in the scene or the default scene. +type ModelingCmdSelectReplace struct { + // EntityIds: IDs of the entities to get the volume of. If this is empty, then the default scene is included in the volume. + EntityIds []UUID `json:"entity_ids" yaml:"entity_ids" schema:"entity_ids,required"` + // OutputUnit: The output unit for the volume. + OutputUnit UnitVolume `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // SourceUnit: Select the unit interpretation of distances in the scene. + SourceUnit UnitLength `json:"source_unit" yaml:"source_unit" schema:"source_unit,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + // ModelingCmdSelectWithPoint: Remove scene objects. type ModelingCmdSelectWithPoint struct { // ObjectIds: Objects to remove. @@ -3123,6 +2300,22 @@ type ModelingCmdSequence struct { Type string `json:"type" yaml:"type" schema:"type,required"` } +// ModelingCmdSourceUnit: Make a plane. +type ModelingCmdSourceUnit struct { + // Clobber: If true, any existing drawables within the obj will be replaced (the object will be reset) + Clobber bool `json:"clobber" yaml:"clobber" schema:"clobber,required"` + // Origin: Origin of the plane + Origin Point3D `json:"origin" yaml:"origin" schema:"origin,required"` + // Size: What should the plane's span/extent? When rendered visually, this is both the width and height along X and Y axis respectively. + Size float64 `json:"size" yaml:"size" schema:"size,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` + // XAxis: What should the plane's X axis be? + XAxis Point3D `json:"x_axis" yaml:"x_axis" schema:"x_axis,required"` + // YAxis: What should the plane's Y axis be? + YAxis Point3D `json:"y_axis" yaml:"y_axis" schema:"y_axis,required"` +} + // ModelingCmdStartPath: Start a path. type ModelingCmdStartPath struct { // Type: @@ -3199,54 +2392,6 @@ type ModelingCmdYaxis struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// ModelingError: Why a command submitted to the Modeling API failed. -type ModelingError struct { - // ErrorCode: A string error code which refers to a family of errors. E.g. "InvalidInput". - ErrorCode string `json:"error_code" yaml:"error_code" schema:"error_code,required"` - // ExternalMessage: Describe the specific error which occurred. Will be shown to users, not logged. - ExternalMessage string `json:"external_message" yaml:"external_message" schema:"external_message,required"` - // InternalMessage: Describe the specific error which occurred. Will be logged, not shown to users. - InternalMessage string `json:"internal_message" yaml:"internal_message" schema:"internal_message,required"` - // StatusCode: A HTTP status code. - StatusCode int `json:"status_code" yaml:"status_code" schema:"status_code,required"` -} - -// ModelingOutcomeCancelled: Cancelled because it required the output of a previous command, which failed. -type ModelingOutcomeCancelled struct { - // Cancelled: - Cancelled Cancelled `json:"cancelled" yaml:"cancelled" schema:"cancelled,required"` -} - -// ModelingOutcomeError: It failed. Why? See 'struct Error' above. -type ModelingOutcomeError struct { - // Error: Why a command submitted to the Modeling API failed. - Error ModelingError `json:"error" yaml:"error" schema:"error,required"` -} - -// ModelingOutcomeErrorError: Why a command submitted to the Modeling API failed. -type ModelingOutcomeErrorError struct { - // ErrorCode: A string error code which refers to a family of errors. E.g. "InvalidInput". - ErrorCode string `json:"error_code" yaml:"error_code" schema:"error_code,required"` - // ExternalMessage: Describe the specific error which occurred. Will be shown to users, not logged. - ExternalMessage string `json:"external_message" yaml:"external_message" schema:"external_message,required"` - // InternalMessage: Describe the specific error which occurred. Will be logged, not shown to users. - InternalMessage string `json:"internal_message" yaml:"internal_message" schema:"internal_message,required"` - // StatusCode: A HTTP status code. - StatusCode int `json:"status_code" yaml:"status_code" schema:"status_code,required"` -} - -// ModelingOutcomeSuccess: Each successful command has some result. -type ModelingOutcomeSuccess struct { - // Success: A successful response from a modeling command. This can be one of several types of responses, depending on the command. - Success any `json:"success" yaml:"success" schema:"success,required"` -} - -// ModelingOutcomes: The result from a batch of modeling commands. -type ModelingOutcomes struct { - // Outcomes: - Outcomes map[string]any `json:"outcomes" yaml:"outcomes" schema:"outcomes,required"` -} - // MouseClick: The response from the `MouseClick` command. type MouseClick struct { // EntitiesModified: Entities that are modified. @@ -3260,7 +2405,7 @@ type NewAddress struct { // City: The city component. City string `json:"city" yaml:"city" schema:"city"` // Country: The country component. This is a two-letter ISO country code. - Country CountryCode `json:"country" yaml:"country" schema:"country,required"` + Country string `json:"country" yaml:"country" schema:"country,required"` // State: The state component. State string `json:"state" yaml:"state" schema:"state"` // Street1: The first street component. @@ -3361,10 +2506,10 @@ type OkModelingCmdResponseHighlightSetEntity struct { Type string `json:"type" yaml:"type" schema:"type,required"` } -// OkModelingCmdResponseOkModelingCmdResponseData: The response from the `Path Get Info` command. +// OkModelingCmdResponseOkModelingCmdResponseData: The response from the `SurfaceArea` command. type OkModelingCmdResponseOkModelingCmdResponseData struct { - // Data: The response from the `PathGetInfo` command. - Data PathGetInfo `json:"data" yaml:"data" schema:"data,required"` + // Data: The surface area response. + Data SurfaceArea `json:"data" yaml:"data" schema:"data,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -3385,6 +2530,46 @@ type OkModelingCmdResponseSelectWithPoint struct { Type string `json:"type" yaml:"type" schema:"type,required"` } +// OkModelingCmdResponseSolid3DgetAllEdgeFaces: The response from the `Path Get Curve UUIDs for Vertices` command. +type OkModelingCmdResponseSolid3DgetAllEdgeFaces struct { + // Data: The response from the `PathGetCurveUuidsForVertices` command. + Data PathGetCurveUuidsForVertices `json:"data" yaml:"data" schema:"data,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// OkModelingCmdResponseSolid3DgetAllOppositeEdges: The response from the `CurveGetEndPoints` command. +type OkModelingCmdResponseSolid3DgetAllOppositeEdges struct { + // Data: Endpoints of a curve + Data CurveGetEndPoints `json:"data" yaml:"data" schema:"data,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// OkModelingCmdResponseSolid3DgetNextAdjacentEdge: The response from the `CenterOfMass` command. +type OkModelingCmdResponseSolid3DgetNextAdjacentEdge struct { + // Data: The center of mass response. + Data CenterOfMass `json:"data" yaml:"data" schema:"data,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// OkModelingCmdResponseSolid3DgetOppositeEdge: The response from the `Mass` command. +type OkModelingCmdResponseSolid3DgetOppositeEdge struct { + // Data: The mass response. + Data Mass `json:"data" yaml:"data" schema:"data,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// OkModelingCmdResponseSolid3DgetPrevAdjacentEdge: The response from the `Density` command. +type OkModelingCmdResponseSolid3DgetPrevAdjacentEdge struct { + // Data: The density response. + Data Density `json:"data" yaml:"data" schema:"data,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + // OkWebSocketResponseDataData: Information about the ICE servers. type OkWebSocketResponseDataData struct { // Data: @@ -3409,6 +2594,14 @@ type OkWebSocketResponseDataOkWebSocketResponseDataData struct { Type string `json:"type" yaml:"type" schema:"type,required"` } +// OkWebSocketResponseDataSdpAnswer: Request a collection of metrics, to include WebRTC. +type OkWebSocketResponseDataSdpAnswer struct { + // Data: + Data Data `json:"data" yaml:"data" schema:"data,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + // OkWebSocketResponseDataTrickleIce: The modeling command response. type OkWebSocketResponseDataTrickleIce struct { // Data: @@ -3447,6 +2640,10 @@ type OutputFormatCoords struct { Storage StlStorage `json:"storage" yaml:"storage" schema:"storage,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` + // Units: Export length unit. + // + // Defaults to meters. + Units UnitLength `json:"units" yaml:"units" schema:"units,required"` } // OutputFormatFbx: glTF 2.0. We refer to this as glTF since that is how our customers refer to it, although by default it will be in binary format and thus technically (glb). If you prefer ascii output, you can set that option for the export. @@ -3495,6 +2692,10 @@ type OutputFormatPresentation struct { Coords System `json:"coords" yaml:"coords" schema:"coords,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` + // Units: Export length unit. + // + // Defaults to meters. + Units UnitLength `json:"units" yaml:"units" schema:"units,required"` } // OutputFormatStorage: Autodesk Filmbox (FBX) format. @@ -3521,20 +2722,34 @@ const ( PathCommandAddArc PathCommand = "add_arc" ) +// PathGetCurveUuidsForVertices: The response from the `PathGetCurveUuidsForVertices` command. +type PathGetCurveUuidsForVertices struct { + // CurveIds: The UUIDs of the curve entities. + CurveIds []UUID `json:"curve_ids" yaml:"curve_ids" schema:"curve_ids,required"` +} + // PathGetInfo: The response from the `PathGetInfo` command. type PathGetInfo struct { // Segments: All segments in the path, in the order they were added. Segments []PathSegmentInfo `json:"segments" yaml:"segments" schema:"segments,required"` } -// PathSegmentAngleEnd: A cubic bezier curve segment. Start at the end of the current line, go through control point 1 and 2, then end at a given point. +// PathSegmentAngleEnd: Adds a tangent arc from current pen position with the given radius and angle. type PathSegmentAngleEnd struct { - // Control1: First control point. - Control1 Point3D `json:"control1" yaml:"control1" schema:"control1,required"` - // Control2: Second control point. - Control2 Point3D `json:"control2" yaml:"control2" schema:"control2,required"` - // End: Final control point. - End Point3D `json:"end" yaml:"end" schema:"end,required"` + // Offset: Offset of the arc. + Offset Angle `json:"offset" yaml:"offset" schema:"offset,required"` + // Radius: Radius of the arc. Not to be confused with Raiders of the Lost Ark. + Radius float64 `json:"radius" yaml:"radius" schema:"radius,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// PathSegmentAngleStart: Adds a tangent arc from current pen position to the new position. +type PathSegmentAngleStart struct { + // AngleSnapIncrement: 0 will be interpreted as none/null. + AngleSnapIncrement Angle `json:"angle_snap_increment" yaml:"angle_snap_increment" schema:"angle_snap_increment"` + // To: Where the arc should end. Must lie in the same plane as the current path pen position. Must not be colinear with current path pen position. + To Point3D `json:"to" yaml:"to" schema:"to,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -3543,6 +2758,8 @@ type PathSegmentAngleEnd struct { type PathSegmentEnd struct { // End: End point of the line. End Point3D `json:"end" yaml:"end" schema:"end,required"` + // Relative: Whether or not this line is a relative offset + Relative bool `json:"relative" yaml:"relative" schema:"relative,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -3553,10 +2770,26 @@ type PathSegmentInfo struct { Command PathCommand `json:"command" yaml:"command" schema:"command,required"` // CommandID: Which command created this path? This field is absent if the path command is not actually creating a path segment, e.g. moving the pen doesn't create a path segment. CommandID UUID `json:"command_id" yaml:"command_id" schema:"command_id"` + // Relative: Whether or not this segment is a relative offset + Relative bool `json:"relative" yaml:"relative" schema:"relative,required"` } -// PathSegmentLine: A circular arc segment. +// PathSegmentLine: A cubic bezier curve segment. Start at the end of the current line, go through control point 1 and 2, then end at a given point. type PathSegmentLine struct { + // Control1: First control point. + Control1 Point3D `json:"control1" yaml:"control1" schema:"control1,required"` + // Control2: Second control point. + Control2 Point3D `json:"control2" yaml:"control2" schema:"control2,required"` + // End: Final control point. + End Point3D `json:"end" yaml:"end" schema:"end,required"` + // Relative: Whether or not this bezier is a relative offset + Relative bool `json:"relative" yaml:"relative" schema:"relative,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + +// PathSegmentRelative: A circular arc segment. +type PathSegmentRelative struct { // AngleEnd: Start of the arc along circle's perimeter. AngleEnd float64 `json:"angle_end" yaml:"angle_end" schema:"angle_end,required"` // AngleStart: Start of the arc along circle's perimeter. @@ -3565,6 +2798,8 @@ type PathSegmentLine struct { Center Point2D `json:"center" yaml:"center" schema:"center,required"` // Radius: Radius of the circle Radius float64 `json:"radius" yaml:"radius" schema:"radius,required"` + // Relative: Whether or not this arc is a relative offset + Relative bool `json:"relative" yaml:"relative" schema:"relative,required"` // Type: Type string `json:"type" yaml:"type" schema:"type,required"` } @@ -3609,17 +2844,10 @@ const ( PaymentMethodTypeCard PaymentMethodType = "card" ) -// PluginsInfo: Available plugins per type. -// **Note**: Only unmanaged (V1) plugins are included in this list. V1 plugins are \"lazily\" loaded, and are not returned in this list if there is no resource using the plugin. -type PluginsInfo struct { - // Authorization: Names of available authorization plugins. - Authorization []string `json:"authorization" yaml:"authorization" schema:"authorization"` - // Log: Names of available logging-drivers, and logging-driver plugins. - Log []string `json:"log" yaml:"log" schema:"log"` - // Network: Names of available network-drivers, and network-driver plugins. - Network []string `json:"network" yaml:"network" schema:"network"` - // Volume: Names of available volume-drivers, and network-driver plugins. - Volume []string `json:"volume" yaml:"volume" schema:"volume"` +// PlaneIntersectAndProject: Corresponding coordinates of given window coordinates, intersected on given plane. +type PlaneIntersectAndProject struct { + // PlaneCoordinates: Corresponding coordinates of given window coordinates, intersected on given plane. + PlaneCoordinates Point2D `json:"plane_coordinates" yaml:"plane_coordinates" schema:"plane_coordinates"` } // PlyStorage: The storage for the output PLY file. @@ -3673,26 +2901,6 @@ type RawFile struct { Name string `json:"name" yaml:"name" schema:"name,required"` } -// RegistryServiceConfig: RegistryServiceConfig stores daemon registry services configuration. -type RegistryServiceConfig struct { - // AllowNondistributableArtifactsCidRs: List of IP ranges to which nondistributable artifacts can be pushed, using the CIDR syntax [RFC 4632](https://tools.ietf.org/html/4632). Some images (for example, Windows base images) contain artifacts whose distribution is restricted by license. When these images are pushed to a registry, restricted artifacts are not included. This configuration override this behavior, and enables the daemon to push nondistributable artifacts to all registries whose resolved IP address is within the subnet described by the CIDR syntax. This option is useful when pushing images containing nondistributable artifacts to a registry on an air-gapped network so hosts on that network can pull the images without connecting to another server. - // - // **Warning**: Nondistributable artifacts typically have restrictions on how and where they can be distributed and shared. Only use this feature to push artifacts to private registries and ensure that you are in compliance with any terms that cover redistributing nondistributable artifacts. - AllowNondistributableArtifactsCidRs []string `json:"allow_nondistributable_artifacts_cid_rs" yaml:"allow_nondistributable_artifacts_cid_rs" schema:"allow_nondistributable_artifacts_cid_rs"` - // AllowNondistributableArtifactsHostnames: List of registry hostnames to which nondistributable artifacts can be pushed, using the format `[:]` or `[:]`. Some images (for example, Windows base images) contain artifacts whose distribution is restricted by license. When these images are pushed to a registry, restricted artifacts are not included. This configuration override this behavior for the specified registries. This option is useful when pushing images containing nondistributable artifacts to a registry on an air-gapped network so hosts on that network can pull the images without connecting to another server. - // - // **Warning**: Nondistributable artifacts typically have restrictions on how and where they can be distributed and shared. Only use this feature to push artifacts to private registries and ensure that you are in compliance with any terms that cover redistributing nondistributable artifacts. - AllowNondistributableArtifactsHostnames []string `json:"allow_nondistributable_artifacts_hostnames" yaml:"allow_nondistributable_artifacts_hostnames" schema:"allow_nondistributable_artifacts_hostnames"` - // IndexConfigs: - IndexConfigs map[string]IndexInfo `json:"index_configs" yaml:"index_configs" schema:"index_configs"` - // InsecureRegistryCidRs: List of IP ranges of insecure registries, using the CIDR syntax ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from unknown CAs) communication. By default, local registries (`127.0.0.0/8`) are configured as insecure. All other registries are secure. Communicating with an insecure registry is not possible if the daemon assumes that registry is secure. This configuration override this behavior, insecure communication with registries whose resolved IP address is within the subnet described by the CIDR syntax. Registries can also be marked insecure by hostname. Those registries are listed under `IndexConfigs` and have their `Secure` field set to `false`. - // - // **Warning**: Using this option can be useful when running a local registry, but introduces security vulnerabilities. This option should therefore ONLY be used for testing purposes. For increased security, users should add their CA to their system's list of trusted CAs instead of enabling this option. - InsecureRegistryCidRs []string `json:"insecure_registry_cid_rs" yaml:"insecure_registry_cid_rs" schema:"insecure_registry_cid_rs"` - // Mirrors: List of registry URLs that act as a mirror for the official (`docker.io`) registry. - Mirrors []string `json:"mirrors" yaml:"mirrors" schema:"mirrors"` -} - // ResponseError: Error information from a response. type ResponseError struct { // ErrorCode: @@ -3739,14 +2947,6 @@ type RtcSessionDescription struct { Type RtcSdpType `json:"type" yaml:"type" schema:"type,required"` } -// Runtime: Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec) runtime. The runtime is invoked by the daemon via the `containerd` daemon. OCI runtimes act as an interface to the Linux kernel namespaces, cgroups, and SELinux. -type Runtime struct { - // Path: Name and, optional, path, of the OCI executable binary. If the path is omitted, the daemon searches the host's `$PATH` for the binary and uses the first result. - Path string `json:"path" yaml:"path" schema:"path"` - // RuntimeArgs: List of command-line arguments to pass to the runtime when invoked. - RuntimeArgs []string `json:"runtime_args" yaml:"runtime_args" schema:"runtime_args"` -} - // SceneSelectionType: The type of scene selection change type SceneSelectionType string @@ -3858,6 +3058,14 @@ type SuccessWebSocketResponse struct { Success bool `json:"success" yaml:"success" schema:"success,required"` } +// SurfaceArea: The surface area response. +type SurfaceArea struct { + // OutputUnit: The output unit for the surface area. + OutputUnit UnitArea `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // SurfaceArea: The surface area. + SurfaceArea float64 `json:"surface_area" yaml:"surface_area" schema:"surface_area,required"` +} + // System: Co-ordinate system definition. // The `up` axis must be orthogonal to the `forward` axis. // @@ -3871,54 +3079,6 @@ type System struct { Up AxisDirectionPair `json:"up" yaml:"up" schema:"up,required"` } -// SystemInfoCgroupDriverEnum is the type definition for a SystemInfoCgroupDriverEnum. -type SystemInfoCgroupDriverEnum string - -const ( - // SystemInfoCgroupDriverEnumEmpty represents the SystemInfoCgroupDriverEnum `""`. - SystemInfoCgroupDriverEnumEmpty SystemInfoCgroupDriverEnum = "" - // SystemInfoCgroupDriverEnumCgroupfs represents the SystemInfoCgroupDriverEnum `"cgroupfs"`. - SystemInfoCgroupDriverEnumCgroupfs SystemInfoCgroupDriverEnum = "cgroupfs" - // SystemInfoCgroupDriverEnumSystemd represents the SystemInfoCgroupDriverEnum `"systemd"`. - SystemInfoCgroupDriverEnumSystemd SystemInfoCgroupDriverEnum = "systemd" - // SystemInfoCgroupDriverEnumNone represents the SystemInfoCgroupDriverEnum `"none"`. - SystemInfoCgroupDriverEnumNone SystemInfoCgroupDriverEnum = "none" -) - -// SystemInfoCgroupVersionEnum is the type definition for a SystemInfoCgroupVersionEnum. -type SystemInfoCgroupVersionEnum string - -const ( - // SystemInfoCgroupVersionEnumEmpty represents the SystemInfoCgroupVersionEnum `""`. - SystemInfoCgroupVersionEnumEmpty SystemInfoCgroupVersionEnum = "" - // SystemInfoCgroupVersionEnum1 represents the SystemInfoCgroupVersionEnum `"1"`. - SystemInfoCgroupVersionEnum1 SystemInfoCgroupVersionEnum = "1" - // SystemInfoCgroupVersionEnum2 represents the SystemInfoCgroupVersionEnum `"2"`. - SystemInfoCgroupVersionEnum2 SystemInfoCgroupVersionEnum = "2" -) - -// SystemInfoDefaultAddressPools is the type definition for a SystemInfoDefaultAddressPools. -type SystemInfoDefaultAddressPools struct { - // Base: The network address in CIDR format - Base string `json:"base" yaml:"base" schema:"base"` - // Size: The network pool size - Size int `json:"size" yaml:"size" schema:"size"` -} - -// SystemInfoIsolationEnum is the type definition for a SystemInfoIsolationEnum. -type SystemInfoIsolationEnum string - -const ( - // SystemInfoIsolationEnumEmpty represents the SystemInfoIsolationEnum `""`. - SystemInfoIsolationEnumEmpty SystemInfoIsolationEnum = "" - // SystemInfoIsolationEnumDefault represents the SystemInfoIsolationEnum `"default"`. - SystemInfoIsolationEnumDefault SystemInfoIsolationEnum = "default" - // SystemInfoIsolationEnumHyperv represents the SystemInfoIsolationEnum `"hyperv"`. - SystemInfoIsolationEnumHyperv SystemInfoIsolationEnum = "hyperv" - // SystemInfoIsolationEnumProcess represents the SystemInfoIsolationEnum `"process"`. - SystemInfoIsolationEnumProcess SystemInfoIsolationEnum = "process" -) - // TakeSnapshot: The response from the `TakeSnapshot` command. type TakeSnapshot struct { // Contents: Contents of the image. @@ -3969,19 +3129,19 @@ type UnitAngleConversion struct { type UnitArea string const ( - // UnitAreaCm2: Square centimetres + // UnitAreaCm2: Square centimeters UnitAreaCm2 UnitArea = "cm2" - // UnitAreaDm2: Square decimetres + // UnitAreaDm2: Square decimeters UnitAreaDm2 UnitArea = "dm2" // UnitAreaFt2: Square feet UnitAreaFt2 UnitArea = "ft2" // UnitAreaIn2: Square inches UnitAreaIn2 UnitArea = "in2" - // UnitAreaKm2: Square kilometres + // UnitAreaKm2: Square kilometers UnitAreaKm2 UnitArea = "km2" - // UnitAreaM2: Square metres + // UnitAreaM2: Square meters UnitAreaM2 UnitArea = "m2" - // UnitAreaMm2: Square millimetres + // UnitAreaMm2: Square millimeters UnitAreaMm2 UnitArea = "mm2" // UnitAreaYd2: Square yards UnitAreaYd2 UnitArea = "yd2" @@ -4225,15 +3385,15 @@ type UnitFrequencyConversion struct { type UnitLength string const ( - // UnitLengthCm: Centimetres + // UnitLengthCm: Centimeters UnitLengthCm UnitLength = "cm" // UnitLengthFt: Feet UnitLengthFt UnitLength = "ft" // UnitLengthIn: Inches UnitLengthIn UnitLength = "in" - // UnitLengthM: Metres + // UnitLengthM: Meters UnitLengthM UnitLength = "m" - // UnitLengthMm: Millimetres + // UnitLengthMm: Millimeters UnitLengthMm UnitLength = "mm" // UnitLengthYd: Yards UnitLengthYd UnitLength = "yd" @@ -4499,13 +3659,13 @@ type UnitTorqueConversion struct { type UnitVolume string const ( - // UnitVolumeCm3: Cubic centimetres (cc or cm³) + // UnitVolumeCm3: Cubic centimeters (cc or cm³) UnitVolumeCm3 UnitVolume = "cm3" // UnitVolumeFt3: Cubic feet (ft³) UnitVolumeFt3 UnitVolume = "ft3" // UnitVolumeIn3: Cubic inches (cu in or in³) UnitVolumeIn3 UnitVolume = "in3" - // UnitVolumeM3: Cubic metres (m³) + // UnitVolumeM3: Cubic meters (m³) UnitVolumeM3 UnitVolume = "m3" // UnitVolumeYd3: Cubic yards (yd³) UnitVolumeYd3 UnitVolume = "yd3" @@ -4618,6 +3778,14 @@ type VerificationToken struct { UpdatedAt Time `json:"updated_at" yaml:"updated_at" schema:"updated_at,required"` } +// Volume: The volume response. +type Volume struct { + // OutputUnit: The output unit for the volume. + OutputUnit UnitVolume `json:"output_unit" yaml:"output_unit" schema:"output_unit,required"` + // Volume: The volume. + Volume float64 `json:"volume" yaml:"volume" schema:"volume,required"` +} + // WebSocketRequestCandidate: The trickle ICE candidate request. type WebSocketRequestCandidate struct { // Candidate: Information about the ICE candidate. @@ -4626,6 +3794,14 @@ type WebSocketRequestCandidate struct { Type string `json:"type" yaml:"type" schema:"type,required"` } +// WebSocketRequestCmd: The response to a metrics collection request from the server. +type WebSocketRequestCmd struct { + // Metrics: Collected metrics from the Client's end of the engine connection. + Metrics ClientMetrics `json:"metrics" yaml:"metrics" schema:"metrics,required"` + // Type: + Type string `json:"type" yaml:"type" schema:"type,required"` +} + // WebSocketRequestOffer: The modeling command request. type WebSocketRequestOffer struct { // Cmd: Which command to submit to the Kittycad engine.