Skip to content

OpenAPI spec has changed upstream #52

@github-actions

Description

@github-actions

The spec at https://api.ionq.co/v0.4/api-docs has diverged from the vendored openapi.json. Fetch the new spec and regenerate the client.

Diff (sorted, pretty-printed JSON)
--- vendored
+++ upstream
@@ -270,6 +270,14 @@
         ],
         "type": "object"
       },
+      "ApiCostModel": {
+        "description": "The billing model used for this job. `QCT` for jobs billed on quantum\ncompute time, `2QGE_operations` for jobs billed on two-qubit gate operations.",
+        "enum": [
+          "QCT",
+          "2QGE_operations"
+        ],
+        "type": "string"
+      },
       "Backend": {
         "description": "A backend that you can target your program to run on.",
         "properties": {
@@ -318,6 +326,56 @@
           "status": {
             "description": "Current status of the backend: `available`, `unavailable`, `retired`.",
             "type": "string"
+          },
+          "supported_error_mitigations": {
+            "description": "Error mitigation options supported by the backend.",
+            "example": [
+              "debiasing"
+            ],
+            "items": {
+              "type": "string"
+            },
+            "type": "array"
+          },
+          "supported_gates": {
+            "description": "Gates supported by the backend.",
+            "example": [
+              "x",
+              "y",
+              "z",
+              "h",
+              "s",
+              "si",
+              "t",
+              "ti",
+              "v",
+              "vi",
+              "rx",
+              "ry",
+              "rz",
+              "cnot",
+              "swap",
+              "xx",
+              "yy",
+              "zz",
+              "not"
+            ],
+            "items": {
+              "type": "string"
+            },
+            "type": "array"
+          },
+          "supported_native_gates": {
+            "description": "Native gates supported by the backend.",
+            "example": [
+              "gpi",
+              "gpi2",
+              "ms"
+            ],
+            "items": {
+              "type": "string"
+            },
+            "type": "array"
           }
         },
         "required": [
@@ -370,7 +428,7 @@
             "nullable": true
           },
           "cost_model": {
-            "$ref": "#/components/schemas/CostModel",
+            "$ref": "#/components/schemas/ApiCostModel",
             "description": "The billing model used for this job."
           },
           "dry_run": {
@@ -446,6 +504,7 @@
             "$ref": "#/components/schemas/JsonObject"
           },
           "shots": {
+            "description": "`shots` are not included with ideal simulator backend.",
             "format": "int32",
             "type": "integer"
           },
@@ -467,7 +526,7 @@
             "$ref": "#/components/schemas/IsoTimestamp"
           },
           "submitter_id": {
-            "description": "The id of the user who submitted the job",
+            "description": "The id of the user who submitted the job.",
             "type": "string"
           },
           "type": {
@@ -682,6 +741,7 @@
           },
           "shots": {
             "default": 100,
+            "description": "`shots` is ignored by ideal simulator backend.",
             "format": "int32",
             "maximum": 1000000,
             "minimum": 1,
@@ -813,12 +873,8 @@
         },
         "type": "object"
       },
-      "CostModel": {
-        "enum": [
-          "quantum_compute_time",
-          "execution_time"
-        ],
-        "type": "string"
+      "CloneJobPayload": {
+        "$ref": "#/components/schemas/Partial_BaseChildJobCreationPayload_"
       },
       "CreateSessionRequest": {
         "additionalProperties": false,
@@ -1035,7 +1091,7 @@
             "nullable": true
           },
           "cost_model": {
-            "$ref": "#/components/schemas/CostModel",
+            "$ref": "#/components/schemas/ApiCostModel",
             "description": "The billing model used for this job."
           },
           "dry_run": {
@@ -1111,6 +1167,7 @@
             "$ref": "#/components/schemas/CircuitJobSettings"
           },
           "shots": {
+            "description": "`shots` are not included with ideal simulator backend.",
             "format": "int32",
             "type": "integer"
           },
@@ -1132,7 +1189,7 @@
             "$ref": "#/components/schemas/IsoTimestamp"
           },
           "submitter_id": {
-            "description": "The id of the user who submitted the job",
+            "description": "The id of the user who submitted the job.",
             "type": "string"
           },
           "type": {
@@ -1277,6 +1334,10 @@
             "format": "double",
             "type": "number"
           },
+          "estimated_quantum_compute_time_us": {
+            "format": "double",
+            "type": "number"
+          },
           "input_values": {
             "$ref": "#/components/schemas/GetJobEstimateQueryParams"
           },
@@ -1284,21 +1345,38 @@
             "properties": {
               "cost_1q_gate": {
                 "format": "double",
+                "nullable": true,
                 "type": "number"
               },
               "cost_2q_gate": {
                 "format": "double",
+                "nullable": true,
                 "type": "number"
               },
               "job_cost_minimum": {
                 "format": "double",
+                "nullable": true,
                 "type": "number"
               },
               "organization": {
                 "type": "string"
+              },
+              "qct_cost_cents": {
+                "format": "double",
+                "nullable": true,
+                "type": "number"
+              },
+              "rate_type": {
+                "enum": [
+                  "qct",
+                  "2qge"
+                ],
+                "type": "string"
               }
             },
             "required": [
+              "qct_cost_cents",
+              "rate_type",
               "job_cost_minimum",
               "cost_2q_gate",
               "cost_1q_gate",
@@ -1907,6 +1985,7 @@
           },
           "shots": {
             "default": 100,
+            "description": "`shots` is ignored by ideal simulator backend.",
             "format": "int32",
             "maximum": 1000000,
             "minimum": 1,
@@ -2038,6 +2117,67 @@
         "properties": {},
         "type": "object"
       },
+      "Partial_BaseChildJobCreationPayload_": {
+        "description": "Make all properties in T optional",
+        "properties": {
+          "backend": {
+            "type": "string"
+          },
+          "dry_run": {
+            "type": "boolean"
+          },
+          "metadata": {
+            "$ref": "#/components/schemas/JobMetadata",
+            "description": "User defined metadata"
+          },
+          "name": {
+            "type": "string"
+          },
+          "noise": {
+            "$ref": "#/components/schemas/Noise"
+          },
+          "parent": {
+            "type": "string"
+          },
+          "session_id": {
+            "type": "string"
+          },
+          "settings": {
+            "properties": {
+              "compilation": {
+                "properties": {
+                  "opt": {
+                    "format": "double",
+                    "type": "number"
+                  },
+                  "precision": {
+                    "type": "string"
+                  }
+                },
+                "type": "object"
+              },
+              "error_mitigation": {
+                "properties": {
+                  "debiasing": {
+                    "type": "boolean"
+                  }
+                },
+                "type": "object"
+              }
+            },
+            "type": "object"
+          },
+          "shots": {
+            "default": 100,
+            "description": "`shots` is ignored by ideal simulator backend.",
+            "format": "int32",
+            "maximum": 1000000,
+            "minimum": 1,
+            "type": "integer"
+          }
+        },
+        "type": "object"
+      },
       "QISCircuit": {
         "additionalProperties": false,
         "properties": {
@@ -2074,7 +2214,7 @@
         "type": "object"
       },
       "QctrlQaoaJobCreationPayload": {
-        "description": "Submit a combinatorial optimization job to solve a maxcut problem using Q-CTRL's QAOA Solver. See our QAOA Job guide for more infromation.\n",
+        "description": "Submit a combinatorial optimization job to solve a maxcut problem using Q-CTRL's QAOA Solver. See our QAOA Job guide for more information.\n",
         "properties": {
           "backend": {
             "$ref": "#/components/schemas/JobBackends"
@@ -2085,7 +2225,7 @@
           "external_settings": {
             "properties": {
               "api_credentials": {
-                "description": "API Key for your Q-CTRL Account",
+                "description": "API Key for your Q-CTRL account",
                 "type": "string"
               },
               "external_organization": {
@@ -3008,7 +3148,7 @@
                         {
                           "backend": "simulator",
                           "completed_at": null,
-                          "cost_model": "quantum_compute_time",
+                          "cost_model": "QCT",
                           "dry_run": false,
                           "execution_duration_ms": null,
                           "failure": null,
@@ -3369,7 +3509,7 @@
                       "backend": "simulator",
                       "child_job_ids": null,
                       "completed_at": null,
-                      "cost_model": "quantum_compute_time",
+                      "cost_model": "QCT",
                       "dry_run": false,
                       "execution_duration_ms": null,
                       "failure": null,
@@ -3473,11 +3613,12 @@
         ]
       }
     },
-    "/jobs/{UUID}/circuits/{lang}": {
+    "/jobs/{UUID}/artifacts/{artifactId}": {
       "get": {
-        "operationId": "GetCompiledFile",
+        "operationId": "GetJobArtifact",
         "parameters": [
           {
+            "description": "The UUID of the job.",
             "in": "path",
             "name": "UUID",
             "required": true,
@@ -3486,14 +3627,11 @@
             }
           },
           {
+            "description": "The artifact id.",
             "in": "path",
-            "name": "lang",
+            "name": "artifactId",
             "required": true,
             "schema": {
-              "enum": [
-                "native",
-                "qasm3"
-              ],
               "type": "string"
             }
           }
@@ -3502,18 +3640,63 @@
           "200": {
             "content": {
               "application/json": {
-                "schema": {
-                  "type": "string"
-                }
+                "schema": {}
               }
             },
-            "description": "Successfully downloaded a compiled file."
-          },
-          "403": {
-            "description": "Forbidden"
+            "description": "Artifact contents."
           },
           "404": {
-            "description": "Not Found"
+            "description": "Job or artifact not found."
+          }
+        },
+        "security": [
+          {
+            "apiKeyAuth": []
+          }
+        ],
+        "summary": "Download a job artifact.",
+        "x-codeSamples": [
+          {
+            "lang": "curl",
+            "source": "curl \"https://api.ionq.co/v0.4/jobs/e1a09d90-b2ba-4ea5-9fd7-4bfc14eac524/artifacts/3fa85f64-5717-4562-b3fc-2c963f66afa6\" \\\n  -H \"Authorization: apiKey your-api-key\"\n"
+          }
+        ]
+      }
+    },
+    "/jobs/{UUID}/clone": {
+      "post": {
+        "operationId": "CloneJob",
+        "parameters": [
+          {
+            "description": "The UUID of the job to clone.",
+            "in": "path",
+            "name": "UUID",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/CloneJobPayload"
+              }
+            }
+          },
+          "required": true
+        },
+        "responses": {
+          "201": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/JobCreationResponse"
+                }
+              }
+            },
+            "description": "Created"
           },
           "429": {
             "description": "Too Many Requests. To get a higher rate limit, please reach out to support@ionq.co"
@@ -4103,7 +4286,7 @@
                         {
                           "backend": "simulator",
                           "completed_at": null,
-                          "cost_model": "quantum_compute_time",
+                          "cost_model": "QCT",
                           "dry_run": false,
                           "execution_duration_ms": null,
                           "failure": null,

Metadata

Metadata

Assignees

Labels

spec-driftUpstream OpenAPI spec has changed

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions