{
    "openapi": "3.1.0",
    "info": {
      "title": "qBraid Runtime API",
      "description": "FastAPI backend powering qBraid's quantum runtime microservice.",
      "version": "2"
    },
    "servers": [
        {
            "url": "https://api-v2.qbraid.com/api/v1",
            "description": "Live Server"
        }
    ],
    "security": [
        {
            "ApiKeyAuth": []
        }
    ],
    "paths": {
      "/devices": {
        "get": {
          "tags": [
            "devices"
          ],
          "summary": "Get All Devices",
          "description": "Retrieve a list of quantum devices available to the authenticated user.\n\n**Query Parameters:**\n- **qrn** (string, optional): Filter by device QRN\n- **vendor** (string, optional): Filter by vendor\n- **providerId** (string, optional): Filter by provider ID\n- **deviceType** (string, optional): Filter by device type (`QPU` or `SIMULATOR`)\n- **status** (string, optional): Filter by operational status\n- **retired** (boolean, optional): Include or exclude retired devices\n- **private** (boolean, optional): Filter by visibility (`true` = private, `false` = public)\n- **verified** (boolean, optional): Filter by verification status\n- **directAccess** (boolean, optional): Filter by direct access availability\n- **search** (string, optional): Search by name, description, or about (1–255 characters)\n- **sortBy** (string, optional): Field to sort by\n- **sortOrder** (string, optional): Sort direction (`asc` or `desc`)\n- **page** (integer, optional): Page number (default: 1)\n- **limit** (integer, optional): Items per page, max 100 (default: 20)\n\n**Returns:**\n- Array of RuntimeDevice objects containing device specifications and pricing information\n\n**Raises:**\n- **401**: Authentication required\n- **422**: Validation error if query parameters are invalid",
          "operationId": "get_all_devices_devices_get",
          "parameters": [
            {
              "name": "qrn",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "description": "Device QRN (qBraid Resource Name)",
                "title": "Qrn"
              },
              "description": "Filter devices by QRN"
            },
            {
              "name": "vendor",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["aws", "azure", "ibm", "ionq", "qbraid"],
                "description": "Filter devices by vendor",
                "title": "Vendor"
              },
              "description": "Filter devices by vendor"
            },
            {
              "name": "providerId",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "description": "Provider ID to filter by",
                "title": "Provider Id"
              },
              "description": "Filter devices by provider ID"
            },
            {
              "name": "deviceType",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["QPU", "SIMULATOR"],
                "description": "Filter by hardware type",
                "title": "Device Type"
              },
              "description": "Filter devices by hardware type"
            },
            {
              "name": "status",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["ONLINE", "OFFLINE", "RETIRED", "UNAVAILABLE"],
                "description": "Filter by operational status",
                "title": "Status"
              },
              "description": "Filter devices by operational status"
            },
            {
              "name": "retired",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "description": "Include or exclude retired devices",
                "title": "Retired"
              },
              "description": "Include (`true`) or exclude (`false`) retired devices"
            },
            {
              "name": "private",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "description": "Filter by device visibility",
                "title": "Private"
              },
              "description": "Filter by visibility — `true` for private, `false` for public"
            },
            {
              "name": "verified",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "description": "Filter by device verification status",
                "title": "Verified"
              },
              "description": "Filter by device verification status"
            },
            {
              "name": "directAccess",
              "in": "query",
              "required": false,
              "schema": {
                "type": "boolean",
                "description": "Filter by direct access availability",
                "title": "Direct Access"
              },
              "description": "Filter devices by direct access availability"
            },
            {
              "name": "search",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255,
                "description": "Search keyword",
                "title": "Search"
              },
              "description": "Search devices by name, description, or about (1–255 characters)"
            },
            {
              "name": "sortBy",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["name", "vendor", "deviceType", "status", "numberQubits", "createdAt", "updatedAt"],
                "description": "Field to sort by",
                "title": "Sort By"
              },
              "description": "Field to sort devices by"
            },
            {
              "name": "sortOrder",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["asc", "desc"],
                "default": "asc",
                "description": "Sort order direction",
                "title": "Sort Order"
              },
              "description": "Sort order direction (default: `asc`)"
            },
            {
              "name": "page",
              "in": "query",
              "required": false,
              "schema": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "description": "Page number (1-indexed)",
                "title": "Page"
              },
              "description": "Page number (1-indexed, default: 1)"
            },
            {
              "name": "limit",
              "in": "query",
              "required": false,
              "schema": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "default": 20,
                "description": "Number of items per page",
                "title": "Limit"
              },
              "description": "Number of items per page (1–100, default: 20)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ListDevicesResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Unauthorized",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Authentication required"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      },
      "/devices/{device_qrn}": {
        "get": {
          "tags": [
            "devices"
          ],
          "summary": "Get Device",
          "description": "Retrieve a device by its device QRN.\n\n**Args:**\n- **device_qrn** (string): Device QRN (qBraid Resource Name)\n\n**Returns:**\n- RuntimeDevice object containing the device details\n\n**Raises:**\n- **422**: Validation error if the device_qrn parameter is invalid",
          "operationId": "get_device_devices__device_qrn__get",
          "parameters": [
            {
              "name": "device_qrn",
              "in": "path",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Device QRN (qBraid Resource Name)",
                "title": "Device Qrn"
              },
              "description": "Device QRN (qBraid Resource Name)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/GetDeviceResponse"
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      },
      "/jobs": {
        "post": {
          "tags": [
            "jobs"
          ],
          "summary": "Create Job",
          "description": "Submit a quantum job to the specified device.\n\n**Request Body:**\n- **program** (object, required): Quantum program with format and data fields\n- **shots** (integer, required): Number of shots to execute\n- **deviceQrn** (string, required): Device QRN (qBraid Resource Name)\n- **runtimeOptions** (object, optional): Runtime options\n- **tags** (object, optional): Job tags\n- **name** (string, optional): Job name\n\n**Headers:**\n- **X-API-KEY** (string, required): Your qBraid API key\n\n**Returns:**\n- Object containing the new job QRN and initial status\n\n**Raises:**\n- **422**: Validation error if required fields are missing or invalid",
          "operationId": "create_job_jobs_post",
          "parameters": [
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobRequest"
                }
              }
            }
          },
          "responses": {
            "201": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CreateJobResponse"
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        },
        "get": {
          "tags": [
            "jobs"
          ],
          "summary": "Get All Jobs",
          "description": "Retrieve a paginated list of quantum jobs for the authenticated user.\n\n**Query Parameters:**\n- **vendor** (string, optional): Filter by vendor (e.g., `aws`, `ibm`, `qbraid`, or `all`)\n- **provider** (string, optional): Filter by provider name\n- **statusGroup** (string, optional): Filter by status group — `pending`, `returned`, or `all`\n- **status** (string, optional): Filter by individual job status (takes priority over `statusGroup`)\n- **search** (string, optional): Search jobs by keyword (1–255 characters)\n- **tags** (string, optional): Filter by tags as a JSON object (e.g., `{\"env\":\"prod\"}`)\n- **page** (integer, optional): Page number (default: 1)\n- **limit** (integer, optional): Items per page, max 100 (default: 50)\n\n**Returns:**\n- Paginated array of RuntimeJob objects with pagination metadata\n\n**Raises:**\n- **401**: Authentication required\n- **422**: Validation error if query parameters are invalid",
          "operationId": "list_jobs_jobs_get",
          "parameters": [
            {
              "name": "vendor",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["aws", "azure", "ibm", "ionq", "qbraid", "all"],
                "description": "Filter jobs by vendor",
                "title": "Vendor"
              },
              "description": "Filter jobs by vendor"
            },
            {
              "name": "provider",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "description": "Filter jobs by provider name",
                "title": "Provider"
              },
              "description": "Filter jobs by provider name"
            },
            {
              "name": "statusGroup",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": ["all", "pending", "returned"],
                "description": "Filter by status group",
                "title": "Status Group"
              },
              "description": "Filter by status group — `pending` (active/in-progress), `returned` (completed/failed/cancelled), or `all`"
            },
            {
              "name": "status",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "enum": [
                  "INITIALIZING",
                  "QUEUED",
                  "VALIDATING",
                  "RUNNING",
                  "CANCELLING",
                  "CANCELLED",
                  "COMPLETED",
                  "FAILED",
                  "UNKNOWN",
                  "HOLD"
                ],
                "description": "Filter by individual job status",
                "title": "Status"
              },
              "description": "Filter by individual job status. Takes priority over `statusGroup` when both are provided"
            },
            {
              "name": "search",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255,
                "description": "Search keyword",
                "title": "Search"
              },
              "description": "Search jobs by keyword (1–255 characters)"
            },
            {
              "name": "tags",
              "in": "query",
              "required": false,
              "schema": {
                "type": "string",
                "description": "JSON object of tag key-value pairs to filter by",
                "title": "Tags",
                "example": "{\"experiment\":\"bell-state\"}"
              },
              "description": "Filter by tags as a JSON object (e.g., `{\"experiment\":\"bell-state\"}`)"
            },
            {
              "name": "page",
              "in": "query",
              "required": false,
              "schema": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "description": "Page number (1-indexed)",
                "title": "Page"
              },
              "description": "Page number (1-indexed, default: 1)"
            },
            {
              "name": "limit",
              "in": "query",
              "required": false,
              "schema": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "default": 50,
                "description": "Number of items per page",
                "title": "Limit"
              },
              "description": "Number of items per page (1–100, default: 50)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ListJobsResponse"
                  }
                }
              }
            },
            "401": {
              "description": "Unauthorized",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Authentication required"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        },
        "delete": {
          "tags": [
            "jobs"
          ],
          "summary": "Delete Multiple Jobs",
          "description": "Delete multiple quantum jobs by their job QRNs.\n\n**Query Parameters:**\n- **qrns** (string, required): JSON array of job QRNs to delete (e.g., [\"qrn1\", \"qrn2\"])\n\n**Returns:**\n- Object containing arrays of successfully deleted and failed job QRNs\n\n**Raises:**\n- **422**: Validation error if the qrns parameter is invalid",
          "operationId": "delete_multiple_jobs_jobs_delete",
          "parameters": [
            {
              "name": "qrns",
              "in": "query",
              "required": true,
              "schema": {
                "type": "string",
                "description": "JSON array of job QRNs to delete",
                "title": "Job QRNs"
              },
              "description": "JSON array of job QRNs to delete (e.g., [\"qbraid:job:abc123\", \"qbraid:job:xyz789\"])"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/DeleteMultipleJobsResponse"
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      },
      "/jobs/{job_qrn}/result": {
        "get": {
          "tags": [
            "jobs"
          ],
          "summary": "Get Job Result",
          "description": "Retrieve the result data for a quantum job.\n\n**Args:**\n- **job_qrn** (string): Job QRN (qBraid Resource Name)\n\n**Returns:**\n- Result object containing job result data including measurement counts and timestamps\n\n**Raises:**\n- **404**: Job is not found\n- **409**: Job results are not yet available or are not valid JSON\n- **422**: Validation error if the job_qrn parameter is invalid",
          "operationId": "get_job_result_jobs__job_qrn__result_get",
          "parameters": [
            {
              "name": "job_qrn",
              "in": "path",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Job QRN (qBraid Resource Name)",
                "title": "Job Qrn"
              },
              "description": "Job QRN (qBraid Resource Name)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/GetJobResultResponse"
                  }
                }
              }
            },
            "404": {
              "description": "Job Not Found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job not found"
                      }
                    }
                  }
                }
              }
            },
            "409": {
              "description": "Conflict",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job results not available yet"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      },
      "/jobs/{job_qrn}/program": {
        "get": {
          "tags": [
            "jobs"
          ],
          "summary": "Get Job Program",
          "description": "Retrieve the quantum program data for a job.\n\n**Args:**\n- **job_qrn** (string): Job QRN (qBraid Resource Name)\n\n**Returns:**\n- Program object containing the quantum program with format and data fields\n\n**Raises:**\n- **404**: Job is not found\n- **409**: Job program is not yet available or is not valid JSON\n- **422**: Validation error if the job_qrn parameter is invalid",
          "operationId": "get_job_program_jobs__job_qrn__program_get",
          "parameters": [
            {
              "name": "job_qrn",
              "in": "path",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Job QRN (qBraid Resource Name)",
                "title": "Job Qrn"
              },
              "description": "Job QRN (qBraid Resource Name)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/GetJobProgramResponse"
                  }
                }
              }
            },
            "404": {
              "description": "Job Not Found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job not found"
                      }
                    }
                  }
                }
              }
            },
            "409": {
              "description": "Conflict",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job program not available yet"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      },
      "/jobs/{job_qrn}/cancel": {
        "post": {
          "tags": [
            "jobs"
          ],
          "summary": "Cancel Job",
          "description": "Cancel a quantum job.\n\n**Args:**\n- **job_qrn** (string): Job QRN (qBraid Resource Name)\n\n**Returns:**\n- Object containing a confirmation message, the job QRN, and the updated status\n\n**Raises:**\n- **400**: Job is in an invalid state for cancellation or vendor is not supported\n- **404**: Job is not found\n- **422**: Validation error if the job_qrn parameter is invalid",
          "operationId": "cancel_job_jobs__job_qrn__cancel_post",
          "parameters": [
            {
              "name": "job_qrn",
              "in": "path",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Job QRN (qBraid Resource Name)",
                "title": "Job Qrn"
              },
              "description": "Job QRN (qBraid Resource Name)"
            }
          ],
          "responses": {
            "202": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/CancelJobResponse"
                  }
                }
              }
            },
            "404": {
              "description": "Job Not Found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job not found"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      },
      "/jobs/{job_qrn}": {
        "get": {
          "tags": [
            "jobs"
          ],
          "summary": "Get Job",
          "description": "Retrieve a quantum job by its job QRN.\n\n**Args:**\n- **job_qrn** (string): Job QRN (qBraid Resource Name)\n\n**Returns:**\n- RuntimeJob object containing the job details\n\n**Raises:**\n- **403**: You do not have permission to access this job\n- **404**: Job is not found\n- **422**: Validation error if the job_qrn parameter is invalid",
          "operationId": "get_job_jobs__job_qrn__get",
          "parameters": [
            {
              "name": "job_qrn",
              "in": "path",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Job QRN (qBraid Resource Name)",
                "title": "Job Qrn"
              },
              "description": "Job QRN (qBraid Resource Name)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/GetJobResponse"
                  }
                }
              }
            },
            "403": {
              "description": "Forbidden",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "You do not have permission to access this job"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Job Not Found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job not found"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        },
        "delete": {
          "tags": [
            "jobs"
          ],
          "summary": "Delete Job",
          "description": "Delete a quantum job by its job QRN.\n\n**Args:**\n- **job_qrn** (string): Job QRN (qBraid Resource Name)\n\n**Returns:**\n- Success message confirming job deletion\n\n**Raises:**\n- **403**: You do not have permission to delete this job\n- **404**: Job is not found\n- **422**: Validation error if the job_qrn parameter is invalid",
          "operationId": "delete_job_jobs__job_qrn__delete",
          "parameters": [
            {
              "name": "job_qrn",
              "in": "path",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Job QRN (qBraid Resource Name)",
                "title": "Job Qrn"
              },
              "description": "Job QRN (qBraid Resource Name)"
            }
          ],
          "responses": {
            "200": {
              "description": "Successful Response",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/DeleteJobResponse"
                  }
                }
              }
            },
            "403": {
              "description": "Forbidden",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "You do not have permission to delete this job"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Job Not Found",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string",
                        "example": "Job not found"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Validation Error",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/HTTPValidationError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {
        "securitySchemes": {
            "ApiKeyAuth": {
                "type": "apiKey",
                "in": "header",
                "name": "X-API-KEY",
                "description": "Authenticate requests using an API key linked to your qBraid account. Obtain your key by registering or logging in at [account.qbraid.com](https://account.qbraid.com)."
            }
        },
      "schemas": {
        "DevicePricing": {
          "properties": {
            "perTask": {
              "type": "number",
              "title": "Credits",
              "description": "A monetary amount where 1 Credit = $0.01 USD.",
              "examples": [10, 0.05, 1.5]
            },
            "perShot": {
              "type": "number",
              "title": "Credits",
              "description": "A monetary amount where 1 Credit = $0.01 USD.",
              "examples": [10, 0.05, 1.5]
            },
            "perMinute": {
              "type": "number",
              "title": "Credits",
              "description": "A monetary amount where 1 Credit = $0.01 USD.",
              "examples": [10, 0.05, 1.5]
            }
          },
          "type": "object",
          "required": [
            "perTask",
            "perShot",
            "perMinute"
          ],
          "title": "DevicePricing",
          "description": "Represents pricing information for a quantum device."
        },
        "DeviceStatus": {
          "type": "string",
          "enum": [
            "ONLINE",
            "UNAVAILABLE",
            "OFFLINE",
            "RETIRED"
          ],
          "title": "DeviceStatus",
          "description": "Enumeration for representing various operational statuses of devices.\n\nAttributes:\n    ONLINE (str): Device is online and accepting jobs.\n    UNAVAILABLE (str): Device is online but not accepting jobs.\n    OFFLINE (str): Device is offline.\n    RETIRED (str): Device has been retired and is no longer operational."
        },
        "GetDeviceResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success"
            },
            "data": {
              "$ref": "#/components/schemas/RuntimeDevice"
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "GetDeviceResponse",
          "description": "Response schema for retrieving a single device"
        },
        "ListDevicesResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success"
            },
            "data": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RuntimeDevice"
              },
              "description": "Array of devices matching the query filters"
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "ListDevicesResponse",
          "description": "Response schema for listing devices"
        },
        "ListJobsResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success"
            },
            "data": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RuntimeJob"
              },
              "description": "Array of jobs matching the query filters"
            },
            "pagination": {
              "type": "object",
              "properties": {
                "page": {
                  "type": "integer",
                  "description": "Current page number"
                },
                "limit": {
                  "type": "integer",
                  "description": "Number of items per page"
                },
                "total": {
                  "type": "integer",
                  "description": "Total number of jobs"
                },
                "totalPages": {
                  "type": "integer",
                  "description": "Total number of pages"
                },
                "hasNext": {
                  "type": "boolean",
                  "description": "Whether a next page exists"
                },
                "hasPrev": {
                  "type": "boolean",
                  "description": "Whether a previous page exists"
                }
              },
              "required": ["page", "limit", "total", "totalPages", "hasNext", "hasPrev"]
            },
            "meta": {
              "type": "object",
              "properties": {
                "timestamp": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Response timestamp"
                }
              },
              "required": ["timestamp"]
            }
          },
          "type": "object",
          "required": ["success", "data", "pagination", "meta"],
          "title": "ListJobsResponse",
          "description": "Paginated response for listing user jobs"
        },
        "GetJobResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success"
            },
            "data": {
              "$ref": "#/components/schemas/RuntimeJob"
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "GetJobResponse",
          "description": "Response schema for retrieving a single job"
        },
        "GetJobResultResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success"
            },
            "data": {
              "$ref": "#/components/schemas/Result"
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "GetJobResultResponse",
          "description": "Response schema for retrieving job results"
        },
        "GetJobProgramResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success"
            },
            "data": {
              "$ref": "#/components/schemas/Program"
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "GetJobProgramResponse",
          "description": "Response schema for retrieving a job program"
        },
        "CreateJobResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success",
              "description": "Whether the job was created successfully"
            },
            "data": {
              "type": "object",
              "properties": {
                "jobQrn": {
                  "type": "string",
                  "description": "QRN of the newly created job",
                  "example": "aws:aws:sim:dm1-a1b2-qjob-1234567890abcdef"
                },
                "status": {
                  "type": "string",
                  "description": "Initial job status",
                  "example": "INITIALIZING"
                }
              },
              "required": ["jobQrn", "status"]
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "CreateJobResponse",
          "description": "Response schema for job creation"
        },
        "CancelJobResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success",
              "description": "Whether the cancellation was initiated successfully"
            },
            "data": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "Confirmation message",
                  "example": "Job cancellation initiated successfully"
                },
                "jobQrn": {
                  "type": "string",
                  "description": "QRN of the job being cancelled",
                  "example": "qbraid:job:abc123xyz"
                },
                "status": {
                  "type": "string",
                  "description": "Updated job status",
                  "example": "CANCELLING"
                }
              },
              "required": ["message", "jobQrn", "status"]
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "CancelJobResponse",
          "description": "Response schema for job cancellation"
        },
        "DeleteJobResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success",
              "description": "Whether the deletion was successful"
            },
            "data": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "Success message",
                  "example": "Job deleted successfully"
                }
              },
              "required": ["message"]
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "DeleteJobResponse",
          "description": "Response schema for single job deletion"
        },
        "DeleteMultipleJobsResponse": {
          "properties": {
            "success": {
              "type": "boolean",
              "title": "Success",
              "description": "Whether the operation completed"
            },
            "data": {
              "type": "object",
              "properties": {
                "successfulIds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Array of job QRNs that were successfully deleted"
                },
                "failedIds": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Object mapping failed job QRNs to their error messages"
                }
              },
              "required": ["successfulIds", "failedIds"]
            }
          },
          "type": "object",
          "required": ["success", "data"],
          "title": "DeleteMultipleJobsResponse",
          "description": "Response schema for multiple job deletion"
        },
        "ExperimentType": {
          "type": "string",
          "enum": [
            "gate_model",
            "analog",
            "annealing",
            "other"
          ],
          "title": "ExperimentType",
          "description": "Enumeration for quantum experiment types.\n\nAttributes:\n    GATE_MODEL (str): Gate-based quantum computing (e.g., OpenQASM).\n    ANALOG (str): Analog quantum computing\n    ANNEALING (str): Quantum annealing for optimization problems.\n    OTHER (str): Placeholder for other or unspecified quantum computing models."
        },
        "HTTPValidationError": {
          "properties": {
            "detail": {
              "items": {
                "$ref": "#/components/schemas/ValidationError"
              },
              "type": "array",
              "title": "Detail"
            }
          },
          "type": "object",
          "title": "HTTPValidationError"
        },
        "JobRequest": {
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Name",
              "description": "Job name"
            },
            "shots": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "title": "Shots",
              "description": "Number of shots to execute"
            },
            "deviceQrn": {
              "type": "string",
              "title": "Deviceqrn",
              "description": "qBraid device resource name"
            },
            "tags": {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "type": "object",
              "title": "Tags",
              "description": "Job tags"
            },
            "runtimeOptions": {
              "additionalProperties": true,
              "type": "object",
              "title": "Runtimeoptions",
              "description": "Runtime options"
            },
            "program": {
              "$ref": "#/components/schemas/Program"
            }
          },
          "type": "object",
          "required": [
            "shots",
            "deviceQrn",
            "program"
          ],
          "title": "JobRequest",
          "description": "Schema for job submission request body"
        },
        "JobStatus": {
          "type": "string",
          "enum": [
            "INITIALIZING",
            "QUEUED",
            "VALIDATING",
            "RUNNING",
            "CANCELLING",
            "CANCELLED",
            "COMPLETED",
            "FAILED",
            "UNKNOWN",
            "HOLD"
          ],
          "title": "JobStatus",
          "description": "Enum for the status of processes (i.e. quantum jobs / tasks) resulting\nfrom any `qbraid.runtime.QuantumDevice.run` method.\n\nDisplayed status text values may differ from those listed below to provide\nadditional visibility into tracebacks, particularly for failed jobs."
        },
        "Program": {
          "properties": {
            "format": {
              "type": "string",
              "enum": [
                "qasm2",
                "qasm3",
                "qir.bc",
                "qir.ll",
                "analog",
                "pulser.sequence",
                "quil",
                "ionq.circuit.v0",
                "problem"
              ],
              "title": "Format",
              "description": "Program format"
            },
            "data": {
              "title": "Data",
              "description": "Program data"
            }
          },
          "type": "object",
          "required": [
            "format",
            "data"
          ],
          "title": "Program",
          "description": "Schema for quantum program"
        },
        "Result": {
          "properties": {
            "status": {
              "$ref": "#/components/schemas/JobStatus"
            },
            "cost": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "type": "number",
              "title": "Credits",
              "description": "A monetary amount where 1 Credit = $0.01 USD.",
              "examples": [10, 0.05, 1.5]
            },
            "timeStamps": {
              "$ref": "#/components/schemas/TimeStamps"
            },
            "resultData": {
              "additionalProperties": true,
              "type": "object",
              "title": "Resultdata"
            }
          },
          "type": "object",
          "required": [
            "status",
            "cost",
            "timeStamps",
            "resultData"
          ],
          "title": "Result",
          "description": "Schema for job result"
        },
        "RuntimeDevice": {
          "properties": {
            "name": {
              "type": "string",
              "title": "Name"
            },
            "qrn": {
              "type": "string",
              "title": "Qrn"
            },
            "vendor": {
              "type": "string",
              "enum": [
                "aws",
                "azure",
                "ibm",
                "ionq",
                "qbraid"
              ],
              "title": "Vendor"
            },
            "deviceType": {
              "type": "string",
              "enum": [
                "SIMULATOR",
                "QPU"
              ],
              "title": "Devicetype"
            },
            "runInputTypes": {
              "items": {
                "type": "string"
              },
              "type": "array",
              "title": "Runinputtypes"
            },
            "status": {
              "$ref": "#/components/schemas/DeviceStatus"
            },
            "statusMsg": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Statusmsg"
            },
            "nextAvailable": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Nextavailable"
            },
            "queueDepth": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Queuedepth"
            },
            "avgQueueTime": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Avgqueuetime"
            },
            "numberQubits": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Numberqubits"
            },
            "paradigm": {
              "$ref": "#/components/schemas/ExperimentType"
            },
            "modality": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Modality"
            },
            "noiseModels": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Noisemodels"
            },
            "pricingModel": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "fixed",
                    "dynamic"
                  ]
                },
                {
                  "type": "null"
                }
              ],
              "title": "Pricingmodel"
            },
            "pricing": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/DevicePricing"
                },
                {
                  "type": "null"
                }
              ]
            },
            "directAccess": {
              "type": "boolean",
              "title": "Directaccess",
              "default": true
            }
          },
          "type": "object",
          "required": [
            "name",
            "qrn",
            "vendor",
            "deviceType",
            "runInputTypes",
            "status",
            "paradigm"
          ],
          "title": "RuntimeDevice",
          "description": "Schema for device response"
        },
        "RuntimeJob": {
          "properties": {
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Name",
              "description": "Job name"
            },
            "shots": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "title": "Shots",
              "description": "Number of shots to execute"
            },
            "deviceQrn": {
              "type": "string",
              "title": "Deviceqrn",
              "description": "qBraid device resource name"
            },
            "tags": {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              "type": "object",
              "title": "Tags",
              "description": "Job tags"
            },
            "runtimeOptions": {
              "additionalProperties": true,
              "type": "object",
              "title": "Runtimeoptions",
              "description": "Runtime options"
            },
            "jobQrn": {
              "type": "string",
              "title": "Jobqrn",
              "description": "qBraid job resource name"
            },
            "batchJobQrn": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Batchjobqrn",
              "description": "Batch job resource name"
            },
            "vendor": {
              "type": "string",
              "enum": [
                "aws",
                "azure",
                "ibm",
                "ionq",
                "qbraid"
              ],
              "title": "Vendor",
              "description": "Vendor name"
            },
            "provider": {
              "type": "string",
              "enum": [
                "aqt",
                "aws",
                "azure",
                "equal1",
                "ibm",
                "iqm",
                "ionq",
                "nec",
                "oqc",
                "pasqal",
                "quantinuum",
                "quera",
                "rigetti",
                "qbraid"
              ],
              "title": "Provider",
              "description": "Provider name"
            },
            "status": {
              "type": "string",
              "description": "Job status"
            },
            "statusMsg": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Statusmsg",
              "description": "Job status message"
            },
            "experimentType": {
              "type": "string",
              "description": "Experiment type"
            },
            "queuePosition": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ],
              "title": "Queueposition",
              "description": "Job queue position"
            },
            "timeStamps": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/TimeStamps"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Job time stamps"
            },
            "cost": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cost",
              "description": "Job cost in credits"
            },
            "estimatedCost": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Estimatedcost",
              "description": "Job estimated cost in credits",
              "ge": 0
            },
            "metadata": {
              "additionalProperties": true,
              "type": "object",
              "title": "Metadata",
              "description": "Job metadata"
            }
          },
          "type": "object",
          "required": [
            "shots",
            "deviceQrn",
            "jobQrn",
            "vendor",
            "provider",
            "status",
            "experimentType",
            "estimatedCost"
          ],
          "title": "RuntimeJob",
          "description": "Schema for runtime job model"
        },
        "TimeStamps": {
          "properties": {
            "createdAt": {
              "type": "string",
              "format": "date-time",
              "title": "Createdat"
            },
            "endedAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Endedat"
            },
            "executionDuration": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ],
              "title": "Executionduration",
              "description": "Execution time in milliseconds"
            }
          },
          "type": "object",
          "required": [
            "createdAt"
          ],
          "title": "TimeStamps",
          "description": "Model for capturing time-related information in an experiment."
        },
        "UpdateAllJobsResponse": {
          "properties": {
            "total_jobs": {
              "type": "integer",
              "title": "Total Jobs",
              "default": 0
            },
            "updated": {
              "type": "integer",
              "title": "Updated",
              "default": 0
            },
            "skipped": {
              "type": "integer",
              "title": "Skipped",
              "default": 0
            },
            "failed": {
              "type": "integer",
              "title": "Failed",
              "default": 0
            },
            "errors": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "type": "array",
              "title": "Errors",
              "default": []
            }
          },
          "type": "object",
          "title": "UpdateAllJobsResponse",
          "description": "Response model for update_all_jobs_status endpoint."
        },
        "ValidationError": {
          "properties": {
            "loc": {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ]
              },
              "type": "array",
              "title": "Location"
            },
            "msg": {
              "type": "string",
              "title": "Message"
            },
            "type": {
              "type": "string",
              "title": "Error Type"
            }
          },
          "type": "object",
          "required": [
            "loc",
            "msg",
            "type"
          ],
          "title": "ValidationError"
        }
      }
    }
}