{
  "components": {
    "schemas": {
      "AOICreate": {
        "additionalProperties": false,
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Bbox",
            "type": "array"
          },
          "description": {
            "default": "",
            "maxLength": 500,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name",
          "bbox"
        ],
        "title": "AOICreate",
        "type": "object"
      },
      "AOIUpdate": {
        "additionalProperties": false,
        "properties": {
          "bbox": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "maxItems": 4,
                "minItems": 4,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bbox"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 500,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "name": {
            "anyOf": [
              {
                "maxLength": 120,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "title": "AOIUpdate",
        "type": "object"
      },
      "AccountResponse": {
        "properties": {
          "display_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "role": {
            "title": "Role",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "display_name",
          "role"
        ],
        "title": "AccountResponse",
        "type": "object"
      },
      "AccountSummaryResponse": {
        "properties": {
          "active_jobs": {
            "title": "Active Jobs",
            "type": "integer"
          },
          "available_credits": {
            "title": "Available Credits",
            "type": "integer"
          },
          "completed_jobs": {
            "title": "Completed Jobs",
            "type": "integer"
          },
          "processed_area_km2": {
            "title": "Processed Area Km2",
            "type": "number"
          },
          "reserved_credits": {
            "title": "Reserved Credits",
            "type": "integer"
          },
          "total_credits": {
            "title": "Total Credits",
            "type": "integer"
          },
          "worker_available": {
            "title": "Worker Available",
            "type": "boolean"
          }
        },
        "required": [
          "available_credits",
          "reserved_credits",
          "total_credits",
          "processed_area_km2",
          "active_jobs",
          "completed_jobs",
          "worker_available"
        ],
        "title": "AccountSummaryResponse",
        "type": "object"
      },
      "AccountUpdate": {
        "additionalProperties": false,
        "description": "Only customer-editable profile fields are accepted.",
        "properties": {
          "display_name": {
            "anyOf": [
              {
                "maxLength": 200,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Display Name"
          }
        },
        "title": "AccountUpdate",
        "type": "object"
      },
      "AoiListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/AoiOut"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "AoiListResponse",
        "type": "object"
      },
      "AoiOut": {
        "properties": {
          "area_km2": {
            "title": "Area Km2",
            "type": "number"
          },
          "bbox": {
            "items": {
              "type": "number"
            },
            "title": "Bbox",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "bbox",
          "area_km2",
          "created_at",
          "updated_at"
        ],
        "title": "AoiOut",
        "type": "object"
      },
      "ApiKeyCreate": {
        "properties": {
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "ApiKeyCreate",
        "type": "object"
      },
      "ApiKeyCreated": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "key_prefix": {
            "title": "Key Prefix",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "revoked_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revoked At"
          },
          "secret": {
            "title": "Secret",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "key_prefix",
          "created_at",
          "last_used_at",
          "revoked_at",
          "secret"
        ],
        "title": "ApiKeyCreated",
        "type": "object"
      },
      "ApiKeyListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ApiKeyOut"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "ApiKeyListResponse",
        "type": "object"
      },
      "ApiKeyOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "key_prefix": {
            "title": "Key Prefix",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "revoked_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Revoked At"
          }
        },
        "required": [
          "id",
          "name",
          "key_prefix",
          "created_at",
          "last_used_at",
          "revoked_at"
        ],
        "title": "ApiKeyOut",
        "type": "object"
      },
      "CheckoutRequest": {
        "properties": {
          "package_id": {
            "title": "Package Id",
            "type": "string"
          }
        },
        "required": [
          "package_id"
        ],
        "title": "CheckoutRequest",
        "type": "object"
      },
      "CheckoutResponse": {
        "properties": {
          "checkout_url": {
            "title": "Checkout Url",
            "type": "string"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          }
        },
        "required": [
          "checkout_url",
          "session_id"
        ],
        "title": "CheckoutResponse",
        "type": "object"
      },
      "CreditExpiryResponse": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "integer"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          }
        },
        "required": [
          "amount",
          "expires_at"
        ],
        "title": "CreditExpiryResponse",
        "type": "object"
      },
      "CreditLotResponse": {
        "properties": {
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "remaining": {
            "title": "Remaining",
            "type": "integer"
          }
        },
        "required": [
          "remaining",
          "expires_at"
        ],
        "title": "CreditLotResponse",
        "type": "object"
      },
      "CreditPackageListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CreditPackageResponse"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "CreditPackageListResponse",
        "type": "object"
      },
      "CreditPackageResponse": {
        "properties": {
          "amount_cents": {
            "title": "Amount Cents",
            "type": "integer"
          },
          "credits": {
            "title": "Credits",
            "type": "integer"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "amount_cents",
          "credits",
          "currency"
        ],
        "title": "CreditPackageResponse",
        "type": "object"
      },
      "CreditTransactionListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/CreditTransactionResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "CreditTransactionListResponse",
        "type": "object"
      },
      "CreditTransactionResponse": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "job_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Id"
          },
          "metadata": {
            "additionalProperties": true,
            "title": "Metadata",
            "type": "object"
          },
          "payment_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment Id"
          },
          "transaction_type": {
            "title": "Transaction Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "amount",
          "transaction_type",
          "job_id",
          "payment_id",
          "created_at"
        ],
        "title": "CreditTransactionResponse",
        "type": "object"
      },
      "CreditsResponse": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "integer"
          },
          "balance": {
            "title": "Balance",
            "type": "integer"
          },
          "credit_lots": {
            "items": {
              "$ref": "#/components/schemas/CreditLotResponse"
            },
            "title": "Credit Lots",
            "type": "array"
          },
          "next_expiry": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CreditExpiryResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "reserved": {
            "title": "Reserved",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "balance",
          "available",
          "reserved",
          "total",
          "credit_lots",
          "next_expiry"
        ],
        "title": "CreditsResponse",
        "type": "object"
      },
      "ErrorResponse": {
        "properties": {
          "error": {
            "properties": {
              "code": {
                "description": "Stable machine-readable code.",
                "type": "string"
              },
              "message": {
                "description": "Safe human-readable message.",
                "type": "string"
              },
              "request_id": {
                "description": "Request correlation identifier.",
                "type": "string"
              }
            },
            "required": [
              "code",
              "message",
              "request_id"
            ],
            "type": "object"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "HealthResponse": {
        "properties": {
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "HealthResponse",
        "type": "object"
      },
      "JobListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/JobOut"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "JobListResponse",
        "type": "object"
      },
      "JobOut": {
        "properties": {
          "bbox": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bbox"
          },
          "charged_credits": {
            "title": "Charged Credits",
            "type": "integer"
          },
          "completed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Code"
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error Message"
          },
          "input_scene_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Input Scene Id"
          },
          "job_id": {
            "title": "Job Id",
            "type": "string"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model"
          },
          "model_version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Model Version"
          },
          "progress": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress"
          },
          "quoted_credits": {
            "default": 0,
            "title": "Quoted Credits",
            "type": "integer"
          },
          "requested_bands": {
            "items": {
              "type": "string"
            },
            "title": "Requested Bands",
            "type": "array"
          },
          "reserved_credits": {
            "title": "Reserved Credits",
            "type": "integer"
          },
          "started_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Started At"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "job_id",
          "status",
          "reserved_credits",
          "charged_credits",
          "created_at"
        ],
        "title": "JobOut",
        "type": "object"
      },
      "ModelListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ModelOut"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "ModelListResponse",
        "type": "object"
      },
      "ModelOut": {
        "properties": {
          "bundle_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bundle Sha256"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "output_resolution": {
            "title": "Output Resolution",
            "type": "number"
          },
          "slug": {
            "title": "Slug",
            "type": "string"
          },
          "supported_bands": {
            "items": {
              "type": "string"
            },
            "title": "Supported Bands",
            "type": "array"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "version",
          "display_name",
          "description",
          "supported_bands",
          "output_resolution",
          "enabled"
        ],
        "title": "ModelOut",
        "type": "object"
      },
      "NotificationPreferencesOut": {
        "properties": {
          "job_completed": {
            "title": "Job Completed",
            "type": "boolean"
          },
          "job_failed": {
            "title": "Job Failed",
            "type": "boolean"
          }
        },
        "required": [
          "job_completed",
          "job_failed"
        ],
        "title": "NotificationPreferencesOut",
        "type": "object"
      },
      "NotificationPreferencesUpdate": {
        "additionalProperties": false,
        "properties": {
          "job_completed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Completed"
          },
          "job_failed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Job Failed"
          }
        },
        "title": "NotificationPreferencesUpdate",
        "type": "object"
      },
      "OutputListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/OutputOut"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "OutputListResponse",
        "type": "object"
      },
      "OutputOut": {
        "properties": {
          "checksum": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Checksum"
          },
          "download_url": {
            "title": "Download Url",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "filename": {
            "title": "Filename",
            "type": "string"
          },
          "format": {
            "title": "Format",
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "enum": [
                  "reflectance",
                  "scl",
                  "cloud_mask",
                  "provenance"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Role"
          },
          "size_bytes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Size Bytes"
          }
        },
        "required": [
          "format",
          "filename",
          "size_bytes",
          "download_url",
          "expires_at"
        ],
        "title": "OutputOut",
        "type": "object"
      },
      "PaymentHistoryListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PaymentHistoryResponse"
            },
            "title": "Items",
            "type": "array"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "title": "PaymentHistoryListResponse",
        "type": "object"
      },
      "PaymentHistoryResponse": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "credits": {
            "title": "Credits",
            "type": "integer"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "id",
          "amount",
          "credits",
          "currency",
          "status",
          "created_at"
        ],
        "title": "PaymentHistoryResponse",
        "type": "object"
      },
      "QuoteOut": {
        "properties": {
          "area_km2": {
            "title": "Area Km2",
            "type": "number"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "quote_id": {
            "title": "Quote Id",
            "type": "string"
          },
          "required_credits": {
            "title": "Required Credits",
            "type": "integer"
          }
        },
        "required": [
          "quote_id",
          "model",
          "area_km2",
          "required_credits",
          "expires_at"
        ],
        "title": "QuoteOut",
        "type": "object"
      },
      "QuoteRequest": {
        "properties": {
          "bands": {
            "items": {
              "type": "string"
            },
            "title": "Bands",
            "type": "array"
          },
          "bbox": {
            "items": {
              "type": "number"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Bbox",
            "type": "array"
          },
          "model": {
            "title": "Model",
            "type": "string"
          },
          "output_format": {
            "const": "cog",
            "default": "cog",
            "title": "Output Format",
            "type": "string"
          },
          "scene_id": {
            "maxLength": 200,
            "minLength": 3,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "title": "Scene Id",
            "type": "string"
          }
        },
        "required": [
          "scene_id",
          "bbox",
          "model"
        ],
        "title": "QuoteRequest",
        "type": "object"
      },
      "SceneCandidate": {
        "properties": {
          "acquired_at": {
            "format": "date-time",
            "title": "Acquired At",
            "type": "string"
          },
          "cloud_cover": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cloud Cover"
          },
          "scene_id": {
            "title": "Scene Id",
            "type": "string"
          }
        },
        "required": [
          "scene_id",
          "acquired_at",
          "cloud_cover"
        ],
        "title": "SceneCandidate",
        "type": "object"
      },
      "SceneSearchOut": {
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/SceneCandidate"
            },
            "title": "Candidates",
            "type": "array"
          },
          "cloud_cover_scope": {
            "const": "scene",
            "title": "Cloud Cover Scope",
            "type": "string"
          },
          "searched_end": {
            "format": "date-time",
            "title": "Searched End",
            "type": "string"
          },
          "searched_start": {
            "format": "date-time",
            "title": "Searched Start",
            "type": "string"
          },
          "selected": {
            "$ref": "#/components/schemas/SceneCandidate"
          },
          "selection": {
            "enum": [
              "nearest",
              "clearest"
            ],
            "title": "Selection",
            "type": "string"
          },
          "target_date": {
            "format": "date",
            "title": "Target Date",
            "type": "string"
          }
        },
        "required": [
          "selected",
          "candidates",
          "target_date",
          "searched_start",
          "searched_end",
          "cloud_cover_scope",
          "selection"
        ],
        "title": "SceneSearchOut",
        "type": "object"
      },
      "SceneSearchRequest": {
        "additionalProperties": false,
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "maxItems": 4,
            "minItems": 4,
            "title": "Bbox",
            "type": "array"
          },
          "days_after": {
            "default": 3,
            "maximum": 3,
            "minimum": 0,
            "title": "Days After",
            "type": "integer"
          },
          "days_before": {
            "default": 7,
            "maximum": 90,
            "minimum": 0,
            "title": "Days Before",
            "type": "integer"
          },
          "max_cloud_cover": {
            "default": 100,
            "maximum": 100,
            "minimum": 0,
            "title": "Max Cloud Cover",
            "type": "number"
          },
          "selection": {
            "default": "nearest",
            "enum": [
              "nearest",
              "clearest"
            ],
            "title": "Selection",
            "type": "string"
          },
          "target_date": {
            "format": "date",
            "title": "Target Date",
            "type": "string"
          }
        },
        "required": [
          "bbox",
          "target_date"
        ],
        "title": "SceneSearchRequest",
        "type": "object"
      },
      "StatusResponse": {
        "properties": {
          "status": {
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "title": "StatusResponse",
        "type": "object"
      },
      "SubmitRequest": {
        "properties": {
          "quote_id": {
            "title": "Quote Id",
            "type": "string"
          }
        },
        "required": [
          "quote_id"
        ],
        "title": "SubmitRequest",
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "bearerFormat": "JWT or HyperSR API key",
        "description": "Use a verified session JWT or an API key created in the dashboard.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "REST API for customer scene discovery, processing jobs, outputs, credits and account management.",
    "title": "HyperSR Customer API",
    "version": "0.1.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/v1/account": {
      "get": {
        "operationId": "get_account_v1_account_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Account"
      },
      "patch": {
        "operationId": "update_account_v1_account_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update Account"
      }
    },
    "/v1/account/notifications": {
      "get": {
        "operationId": "get_notification_preferences_v1_account_notifications_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Notification Preferences"
      },
      "patch": {
        "operationId": "update_notification_preferences_v1_account_notifications_patch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationPreferencesUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPreferencesOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update Notification Preferences"
      }
    },
    "/v1/account/summary": {
      "get": {
        "operationId": "account_summary_v1_account_summary_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSummaryResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Account Summary"
      }
    },
    "/v1/aois": {
      "get": {
        "operationId": "list_aois_v1_aois_get",
        "parameters": [
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AoiListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Aois"
      },
      "post": {
        "operationId": "create_aoi_v1_aois_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AOICreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AoiOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST, INVALID_AOI",
            "x-error-codes": [
              "INVALID_REQUEST",
              "INVALID_AOI"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Aoi"
      }
    },
    "/v1/aois/{aoi_id}": {
      "delete": {
        "operationId": "delete_aoi_v1_aois__aoi_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "aoi_id",
            "required": true,
            "schema": {
              "title": "Aoi Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "AOI_NOT_FOUND",
            "x-error-codes": [
              "AOI_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Delete Aoi"
      },
      "get": {
        "operationId": "get_aoi_v1_aois__aoi_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "aoi_id",
            "required": true,
            "schema": {
              "title": "Aoi Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AoiOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "AOI_NOT_FOUND",
            "x-error-codes": [
              "AOI_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Aoi"
      },
      "patch": {
        "operationId": "update_aoi_v1_aois__aoi_id__patch",
        "parameters": [
          {
            "in": "path",
            "name": "aoi_id",
            "required": true,
            "schema": {
              "title": "Aoi Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AOIUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AoiOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "AOI_NOT_FOUND",
            "x-error-codes": [
              "AOI_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Update Aoi"
      }
    },
    "/v1/api-keys": {
      "get": {
        "operationId": "list_api_keys_v1_api_keys_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Api Keys"
      },
      "post": {
        "operationId": "create_api_key_v1_api_keys_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyCreated"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Api Key"
      }
    },
    "/v1/api-keys/{key_id}": {
      "delete": {
        "operationId": "revoke_api_key_v1_api_keys__key_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "KEY_NOT_FOUND",
            "x-error-codes": [
              "KEY_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Revoke Api Key"
      }
    },
    "/v1/billing/checkout": {
      "post": {
        "operationId": "checkout_v1_billing_checkout_post",
        "parameters": [
          {
            "description": "Unique key that makes a retry safe and deterministic.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "IDEMPOTENCY_KEY_REQUIRED, INVALID_PACKAGE",
            "x-error-codes": [
              "IDEMPOTENCY_KEY_REQUIRED",
              "INVALID_PACKAGE"
            ]
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "IDEMPOTENCY_KEY_CONFLICT",
            "x-error-codes": [
              "IDEMPOTENCY_KEY_CONFLICT"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "BILLING_PROVIDER_ERROR",
            "x-error-codes": [
              "BILLING_PROVIDER_ERROR"
            ]
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "BILLING_UNAVAILABLE, BILLING_MISCONFIGURED",
            "x-error-codes": [
              "BILLING_UNAVAILABLE",
              "BILLING_MISCONFIGURED"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Checkout",
        "tags": [
          "billing"
        ]
      }
    },
    "/v1/billing/history": {
      "get": {
        "operationId": "history_v1_billing_history_get",
        "parameters": [
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentHistoryListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "History",
        "tags": [
          "billing"
        ]
      }
    },
    "/v1/billing/packages": {
      "get": {
        "operationId": "packages_v1_billing_packages_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditPackageListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "BILLING_MISCONFIGURED",
            "x-error-codes": [
              "BILLING_MISCONFIGURED"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Packages",
        "tags": [
          "billing"
        ]
      }
    },
    "/v1/credits": {
      "get": {
        "operationId": "credits_v1_credits_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Credits"
      }
    },
    "/v1/credits/transactions": {
      "get": {
        "operationId": "credit_transactions_v1_credits_transactions_get",
        "parameters": [
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditTransactionListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Credit Transactions"
      }
    },
    "/v1/health": {
      "get": {
        "operationId": "health_v1_health_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "summary": "Health"
      }
    },
    "/v1/jobs": {
      "get": {
        "operationId": "list_jobs_v1_jobs_get",
        "parameters": [
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "default": 0,
              "minimum": 0,
              "title": "Offset",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 100,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 200,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Search"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List Jobs"
      },
      "post": {
        "operationId": "create_job_v1_jobs_post",
        "parameters": [
          {
            "description": "Unique key that makes a retry safe and deterministic.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "IDEMPOTENCY_KEY_REQUIRED, QUOTE_EXPIRED, MODEL_UNAVAILABLE, INVALID_AOI",
            "x-error-codes": [
              "IDEMPOTENCY_KEY_REQUIRED",
              "QUOTE_EXPIRED",
              "MODEL_UNAVAILABLE",
              "INVALID_AOI"
            ]
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "402": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INSUFFICIENT_CREDITS",
            "x-error-codes": [
              "INSUFFICIENT_CREDITS"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "IDEMPOTENCY_CONFLICT",
            "x-error-codes": [
              "IDEMPOTENCY_CONFLICT"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED, USER_JOB_LIMIT",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED",
              "USER_JOB_LIMIT"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "SUBMISSIONS_PAUSED",
            "x-error-codes": [
              "SUBMISSIONS_PAUSED"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Job"
      }
    },
    "/v1/jobs/quote": {
      "post": {
        "operationId": "create_quote_v1_jobs_quote_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_SCENE, MODEL_UNAVAILABLE, UNSUPPORTED_BANDS, INVALID_AOI",
            "x-error-codes": [
              "INVALID_SCENE",
              "MODEL_UNAVAILABLE",
              "UNSUPPORTED_BANDS",
              "INVALID_AOI"
            ]
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST, INVALID_SCENE, INVALID_AOI",
            "x-error-codes": [
              "INVALID_REQUEST",
              "INVALID_SCENE",
              "INVALID_AOI"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Create Quote"
      }
    },
    "/v1/jobs/{job_id}": {
      "get": {
        "operationId": "get_job_v1_jobs__job_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "JOB_NOT_FOUND",
            "x-error-codes": [
              "JOB_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get Job"
      }
    },
    "/v1/jobs/{job_id}/cancel": {
      "post": {
        "operationId": "cancel_job_v1_jobs__job_id__cancel_post",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "JOB_NOT_FOUND",
            "x-error-codes": [
              "JOB_NOT_FOUND"
            ]
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "JOB_NOT_CANCELLABLE",
            "x-error-codes": [
              "JOB_NOT_CANCELLABLE"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Cancel Job"
      }
    },
    "/v1/jobs/{job_id}/outputs": {
      "get": {
        "operationId": "outputs_v1_jobs__job_id__outputs_get",
        "parameters": [
          {
            "in": "path",
            "name": "job_id",
            "required": true,
            "schema": {
              "title": "Job Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "JOB_NOT_FOUND",
            "x-error-codes": [
              "JOB_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "STORAGE_ERROR",
            "x-error-codes": [
              "STORAGE_ERROR"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Outputs"
      }
    },
    "/v1/models": {
      "get": {
        "operationId": "models_v1_models_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelListResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          }
        },
        "summary": "Models"
      }
    },
    "/v1/outputs/{output_id}/download": {
      "get": {
        "operationId": "download_output_v1_outputs__output_id__download_get",
        "parameters": [
          {
            "in": "path",
            "name": "output_id",
            "required": true,
            "schema": {
              "title": "Output Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "expires",
            "required": true,
            "schema": {
              "title": "Expires",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "signature",
            "required": true,
            "schema": {
              "title": "Signature",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              },
              "image/tiff": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Signed output file. Provenance outputs are JSON; raster outputs are GeoTIFF."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "DOWNLOAD_URL_INVALID, OUTPUT_FORBIDDEN",
            "x-error-codes": [
              "DOWNLOAD_URL_INVALID",
              "OUTPUT_FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "OUTPUT_NOT_FOUND",
            "x-error-codes": [
              "OUTPUT_NOT_FOUND"
            ]
          },
          "410": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "OUTPUT_EXPIRED",
            "x-error-codes": [
              "OUTPUT_EXPIRED"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST",
            "x-error-codes": [
              "INVALID_REQUEST"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "STORAGE_ERROR",
            "x-error-codes": [
              "STORAGE_ERROR"
            ]
          }
        },
        "summary": "Download Output"
      }
    },
    "/v1/scenes/search": {
      "post": {
        "description": "Find reviewable provider acquisitions; this endpoint never creates a job or quote.",
        "operationId": "search_scene_catalog_v1_scenes_search_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SceneSearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SceneSearchOut"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_DATE_WINDOW",
            "x-error-codes": [
              "INVALID_DATE_WINDOW"
            ]
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "UNAUTHENTICATED",
            "x-error-codes": [
              "UNAUTHENTICATED"
            ]
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "FORBIDDEN",
            "x-error-codes": [
              "FORBIDDEN"
            ]
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "SCENES_NOT_FOUND",
            "x-error-codes": [
              "SCENES_NOT_FOUND"
            ]
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "REQUEST_TOO_LARGE",
            "x-error-codes": [
              "REQUEST_TOO_LARGE"
            ]
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INVALID_REQUEST, INVALID_AOI, AOI_TOO_LARGE",
            "x-error-codes": [
              "INVALID_REQUEST",
              "INVALID_AOI",
              "AOI_TOO_LARGE"
            ]
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "RATE_LIMIT_EXCEEDED",
            "x-error-codes": [
              "RATE_LIMIT_EXCEEDED"
            ]
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "INTERNAL_ERROR",
            "x-error-codes": [
              "INTERNAL_ERROR"
            ]
          },
          "502": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "CATALOG_INVALID_METADATA, CATALOG_INVALID_PAGINATION, CATALOG_INVALID_RESPONSE, CATALOG_REQUEST_FAILED, CATALOG_RESPONSE_TOO_LARGE, CATALOG_RESULT_LIMIT, CATALOG_TRUNCATED",
            "x-error-codes": [
              "CATALOG_INVALID_METADATA",
              "CATALOG_INVALID_PAGINATION",
              "CATALOG_INVALID_RESPONSE",
              "CATALOG_REQUEST_FAILED",
              "CATALOG_RESPONSE_TOO_LARGE",
              "CATALOG_RESULT_LIMIT",
              "CATALOG_TRUNCATED"
            ]
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Search Scene Catalog"
      }
    }
  },
  "servers": [
    {
      "description": "Local API origin",
      "url": "http://localhost:8000"
    },
    {
      "description": "Hosted API origin when enabled",
      "url": "https://api.hypersr.com"
    }
  ]
}