{"openapi": "3.1.0", "info": {"title": "Tasking API", "description": "Interface for the satellite tasking flow, including the feasibility endpoint collection,\ntasking ordering, retrieving and listing order information, as well as retrieving ordered tasking data.", "version": "v2", "x-logo": {"url": "https://cdn.satellitevu.com/dark-logo.svg"}}, "servers": [{"url": "https://api.satellitevu.com/otm/v2"}], "paths": {"/{contract_id}/tasking/orders/": {"get": {"tags": ["Order"], "summary": "List all tasking orders.", "description": "Returns a list of your tasking orders. The orders are returned sorted by creation\ndate, with the most recent orders appearing first.", "operationId": "list-orders", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "per_page", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 100, "minimum": 1, "description": "The number of orders to return per page.", "default": 25, "title": "Per Page"}, "description": "The number of orders to return per page."}, {"name": "token", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The pagination token.", "title": "Token"}, "description": "The pagination token."}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/otm__services__shared__schemas__resellers__ListStoredOrdersResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"tags": ["Order"], "summary": "Create a tasking order request.", "description": "Creates a tasking order request.", "operationId": "create-order", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"anyOf": [{"oneOf": [{"$ref": "#/components/schemas/StandardOrderRequest"}, {"$ref": "#/components/schemas/AssuredOrderRequest"}]}, {"oneOf": [{"$ref": "#/components/schemas/ResellerStandardOrderRequest"}, {"$ref": "#/components/schemas/ResellerAssuredOrderRequest"}]}], "title": "Payload"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/StoredOrderResponse"}, {"$ref": "#/components/schemas/ResellerStoredOrderResponse"}], "title": "Response Create-Order"}}}}, "400": {"description": "Invalid or expired signature token", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "402": {"description": "Insufficient credit available to make a reservation", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "403": {"description": "Breach of contract terms and conditions / Reseller end user error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "409": {"description": "Assured pass no longer available (taken by another order or satellite outage)", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation error (invalid request body) or invalid withhold/licence level option", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Create-Order"}}}}, "500": {"description": "Internal server error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "503": {"description": "Ordering temporarily unavailable", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}}}}, "/{contract_id}/tasking/orders/{order_id}": {"get": {"tags": ["Order"], "summary": "Retrieve a tasking order.", "description": "Retrieves the tasking order with a given ID.", "operationId": "get-tasking-order", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/GetOrderResponse"}, {"$ref": "#/components/schemas/ResellerGetOrderResponse"}], "title": "Response Get-Tasking-Order"}}}}, "404": {"description": "Order not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["Order"], "summary": "Edit a tasking order request.", "description": "Edits a tasking order request.\n\nSupports modifying:\n\n**Platform-only parameters (any status):**\n- name: Order name\n\n**Price-relevant parameters (until fulfillment):**\n- withhold: Withhold option\n- licence_level: Licence level\n\n**Tasking parameters (Standard orders, Created/Staged only):**\n- geometry: Order location (Point)\n- start_time: Start of tasking window (must be \u22657 days before end_time, cannot be in the past)\n- end_time: End of tasking window (must be \u22657 days after start_time, cannot be in the past)\n- day_night_mode: Day/night/both\n- max_cloud_cover: Maximum cloud coverage (0-100%)\n- min_off_nadir: Minimum off-nadir angle (0-45\u00b0)\n- max_off_nadir: Maximum off-nadir angle (0-45\u00b0)\n\n**Status-based restrictions:**\n- Tasking parameters can only be modified for Standard orders before submission\n- Assured orders cannot modify geometry or tasking parameters\n- Price-relevant parameters can be modified until fulfillment", "operationId": "edit-tasking-order", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EditOrderPayload"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/GetOrderResponse"}, {"$ref": "#/components/schemas/ResellerGetOrderResponse"}], "title": "Response Edit-Tasking-Order"}}}}, "404": {"description": "Order not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation error (invalid request body) or invalid withhold/licence level option", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Edit-Tasking-Order"}}}}}}}, "/{contract_id}/tasking/orders/{order_id}/cancel": {"post": {"tags": ["Order"], "summary": "Cancel a tasking order request.", "description": "Cancels a tasking order request.\n\nFor orders that are part of a recurring series, cancellation is terminal\nand consumes the order's slot in the series \u2014 no replacement order is\nscheduled. If the cancelled order was the series' last outstanding one\n(all orders created and all now terminal), the series is completed.", "operationId": "cancel-tasking-order", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Order not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "409": {"description": "Order cannot be cancelled.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "500": {"description": "Internal server error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/orders/{order_id}/download": {"get": {"tags": ["Order"], "summary": "Download a tasking order.", "description": "Download the item for a specified tasking order owned by the authenticated user,\nprovided the order has been fulfilled.\n\nFor acquisition orders, all linked collections (e.g. primary,\nsurface-brightness-temperature) are downloaded by default with GeoTIFF\nformat for the primary collection. Use the collections parameter to\ndownload a specific subset.\n\nBy default, the redirect parameter is set to True which allows the image\ncontent to be downloaded locally. If the redirect parameter is False, a\npresigned download URL with an expiry will be returned.", "operationId": "download-tasking-order", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}, {"name": "redirect", "in": "query", "required": false, "schema": {"type": "boolean", "description": "If `true` download the image content locally, otherwise if `false` return a presigned download URL with an expiry. Defaults to `true`.", "default": true, "title": "Redirect"}, "description": "If `true` download the image content locally, otherwise if `false` return a presigned download URL with an expiry. Defaults to `true`."}, {"name": "collections", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"enum": ["primary", "surface-brightness-temperature"], "type": "string"}}, {"type": "null"}], "title": "Collections", "description": "Specify a subset of collections to download.\n        For acquisition orders, defaults to all linked collections (e.g. primary,\n        surface-brightness-temperature) with GeoTIFF format for primary.\n        To specify multiple collections, repeat the query parameter.\n        "}, "description": "Specify a subset of collections to download.\n        For acquisition orders, defaults to all linked collections (e.g. primary,\n        surface-brightness-temperature) with GeoTIFF format for primary.\n        To specify multiple collections, repeat the query parameter.\n        ", "examples": {"singular collection": {"summary": "Singular collection download", "description": "Download only the primary collection", "value": "primary"}, "multiple collections": {"summary": "Multiple collections download", "description": "Download both the primary and surface-brightness-temperature collections", "value": "primary&collections=surface-brightness-temperature"}}}, {"name": "primary_formats", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"enum": ["geotiff", "nitf"], "type": "string"}}, {"type": "null"}], "title": "Primary Formats", "description": "Specify a file format to download.\n            Defaults to geotiff, which will download without nitf.\n            To specify multiple formats, repeat the query parameter.\n            If NITF is specified but not available for an item, GeoTIFF will be provided instead.\n            "}, "description": "Specify a file format to download.\n            Defaults to geotiff, which will download without nitf.\n            To specify multiple formats, repeat the query parameter.\n            If NITF is specified but not available for an item, GeoTIFF will be provided instead.\n            ", "examples": {"singular format": {"summary": "Singular format download", "description": "Download the primary product with only the geotiff files", "value": "geotiff"}, "multiple formats": {"summary": "Multiple format download", "description": "Download primary product with both geotiff and nitf files", "value": "geotiff&primary_formats=nitf"}}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrderItemDownloadUrl"}}}}, "202": {"description": "Download is being prepared. Retry after the specified number of seconds; the `progress` field reports packaging progress.", "headers": {"Retry-After": {"description": "Number of seconds to wait before retrying the download", "schema": {"type": "integer"}}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DownloadPending"}}}}, "307": {"description": "Temporary redirect to the download URL", "headers": {"Cache-Control": {"description": "Cache control directives to prevent caching of the redirect", "schema": {"type": "string"}}}}, "403": {"description": "Forbidden"}, "404": {"description": "Not Found"}, "422": {"description": "NITF format requested for non-primary collection", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}}, "x-streaming-download": true, "x-streaming-config": {"default_chunk_size": 8192, "example_filename": "download.zip", "description_override": "Stream high-resolution imagery to disk"}}}, "/{contract_id}/tasking/orders/{order_id}/acquisition/details": {"get": {"tags": ["Order"], "summary": "Retrieve acquisition details for a tasking order.", "description": "Returns acquisition details for a tasking order.", "operationId": "get-order-acquisition", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StacFeature"}}}}, "404": {"description": "Not Found"}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/orders/{order_id}/tasks": {"get": {"tags": ["Task"], "summary": "List all tasks for a tasking order.", "description": "Returns a list of tasks for an order, sorted by creation date (newest first).\n\nIncludes status history and acquisition metadata for each task.", "operationId": "list-order-tasks", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ListOrderTasksResponse"}, {"$ref": "#/components/schemas/ListOrderTasksUnavailableResponse"}], "title": "Response List-Order-Tasks"}}}}, "404": {"description": "Order not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/feasibilities/": {"post": {"tags": ["Feasibility"], "summary": "Create feasibility request.", "description": "Searches feasibility options for a tasking order.", "operationId": "create-feasibility-request", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeasibilityRequest"}}}}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredFeasibilityRequest"}}}}, "403": {"description": "Breach of contract terms and conditions.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "503": {"description": "Feasibility temporarily unavailable.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "get": {"tags": ["Feasibility"], "summary": "List all feasibility requests owned by a user.", "description": "Retrieves all tasking feasibility requests owned by a user.", "operationId": "list-feasibility-requests", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "per_page", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 100, "minimum": 1, "description": "The number of orders to return per page", "default": 25, "title": "Per Page"}, "description": "The number of orders to return per page"}, {"name": "token", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The pagination token", "title": "Token"}, "description": "The pagination token"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredFeasibilityFeatureCollection"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/feasibilities/{id}": {"get": {"tags": ["Feasibility"], "summary": "Retrieve a feasibility request", "description": "Retrieves the tasking feasibility request with a given ID.", "operationId": "get-feasibility-request", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Feasibility Request ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Id"}, "description": "Feasibility Request ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredFeasibilityRequest"}}}}, "404": {"description": "Feasibility request not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/feasibilities/{id}/response": {"get": {"tags": ["Feasibility"], "summary": "Retrieve response for a feasibility request", "description": "Retrieves the tasking feasibility response with a given request ID. Passes are returned\nin ascending order based on the start of the estimated acquisition time.", "operationId": "get-feasibility-response", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Feasibility Request ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Id"}, "description": "Feasibility Request ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FeasibilityResponse"}}}}, "404": {"description": "Feasibility request not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/feasibilities/orders/{order_id}": {"post": {"tags": ["Feasibility"], "summary": "Create feasibility request for modifying an existing order.", "description": "Performs a feasibility check for modifying an existing tasking order.\nOnly supports Standard orders.\nAll fields in the payload are optional - unspecified fields will be sourced from the existing order.\n\nOrders can only be modified if they are not in a terminal or non-modifiable state.\nOrders in the following states can be modified: `staged`.", "operationId": "create-order-feasibility-request", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID to modify", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID to modify"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ModifyFeasibilityRequest"}}}}, "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredFeasibilityRequest"}}}}, "403": {"description": "Breach of contract terms and conditions.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "404": {"description": "Order not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "409": {"description": "Order is in a terminal/non-modifiable state or is an Assured order (modification feasibility request not supported)", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "503": {"description": "Feasibility temporarily unavailable.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/price/": {"post": {"tags": ["Price"], "summary": "Get price for a set of ordering parameters.", "description": "Returns the price for a set of ordering parameters.", "operationId": "calculate-price", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "baseprice", "in": "query", "required": false, "schema": {"type": "boolean", "description": "Whether to return the base price only, ignoring any addons or the licence level.", "default": false, "title": "Baseprice"}, "description": "Whether to return the base price only, ignoring any addons or the licence level."}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PriceRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrderPrice"}}}}, "400": {"description": "Invalid request.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "403": {"description": "Breach of contract terms and conditions.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation error (invalid request body) or invalid withhold/licence level option", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Calculate-Price"}}}}}}}, "/{contract_id}/tasking/price/{order_id}": {"post": {"tags": ["Price"], "summary": "Calculate price for modification of an existing order.", "description": "Returns an updated price for modifying an existing order.\n\nThis endpoint provides a price preview before committing changes via the PATCH /orders/{order_id} endpoint.\n\nThe response includes the complete updated order representation showing how the order would look\nafter modification, including the original price and the updated price value.", "operationId": "calculate-modified-order-price", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "order_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Order ID", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"], "title": "Order Id"}, "description": "Order ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EditOrderPayload"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrderModificationPrice"}}}}, "400": {"description": "Invalid request.", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "404": {"description": "Order not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "409": {"description": "Order is in a terminal state or price cannot be modified", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation error (invalid request body) or invalid withhold/licence level option", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Calculate-Modified-Order-Price"}}}}}}}, "/{contract_id}/tasking/outages/": {"get": {"tags": ["Outages"], "summary": "List unplanned satellite outages.", "operationId": "list-unplanned-outages", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/Outage"}, "minItems": 0, "title": "Response List-Unplanned-Outages"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/series/": {"post": {"tags": ["Series"], "summary": "Create a recurring tasking series.", "description": "Create a recurring tasking series.\n\nSchedules standard priority orders at the given frequency starting from\nstart_date, until total_order_count orders have been created.\n\nProvide either total_order_count or end_date to specify series length.", "operationId": "create-series", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SeriesRequest"}}}}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredSeriesResponse"}}}}, "400": {"description": "Malformed request body", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "402": {"description": "Insufficient credit available to make a reservation", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "403": {"description": "Breach of contract terms and conditions / Reseller end user error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation error (invalid request body) or invalid withhold/licence level option", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Create-Series"}}}}, "500": {"description": "Internal server error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "503": {"description": "Ordering temporarily unavailable", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}}}, "get": {"tags": ["Series"], "summary": "List all tasking series.", "description": "Returns all series belonging to the contract, sorted by creation date\n(newest first).", "operationId": "list-series", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "per_page", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 100, "minimum": 1, "description": "Number of series to return per page.", "default": 25, "title": "Per Page"}, "description": "Number of series to return per page."}, {"name": "token", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Pagination token.", "title": "Token"}, "description": "Pagination token."}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListSeriesResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/series/{series_id}": {"get": {"tags": ["Series"], "summary": "Retrieve a tasking series.", "description": "Retrieves the tasking series with the given ID.", "operationId": "get-series", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "series_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Series ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Series Id"}, "description": "Series ID"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredSeriesResponse"}}}}, "404": {"description": "Series not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "patch": {"tags": ["Series"], "summary": "Update a tasking series.", "description": "Update a series.\n\n- name: can be updated in any status\n- geometry, order_parameters, frequency, total_order_count: only when status=active\n\nUpdates only affect future child orders. Already-created orders remain unchanged.", "operationId": "edit-series", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "series_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Series ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Series Id"}, "description": "Series ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EditSeriesProperties"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoredSeriesResponse"}}}}, "400": {"description": "Malformed request body", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "403": {"description": "The active series' geometry falls outside the contract's allowed geographical area (re-validated on every edit of an active series)", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "404": {"description": "Series not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "409": {"description": "Series status prevents modification, or the modification conflicts with orders already created or in progress", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/StructuredErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 409 Edit-Series"}}}}, "422": {"description": "Validation error or invalid addon options", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Edit-Series"}}}}}}}, "/{contract_id}/tasking/series/{series_id}/orders/": {"get": {"tags": ["Series"], "summary": "List orders belonging to a series.", "description": "Returns all orders belonging to the series, sorted by creation date\n(newest first).", "operationId": "list-series-orders", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "series_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Series ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Series Id"}, "description": "Series ID"}, {"name": "per_page", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 100, "minimum": 1, "description": "Number of orders to return per page.", "default": 25, "title": "Per Page"}, "description": "Number of orders to return per page."}, {"name": "token", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Pagination token.", "title": "Token"}, "description": "Pagination token."}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/otm__services__shared__schemas__orders__ListStoredOrdersResponse"}}}}, "404": {"description": "Series not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/series/price/": {"post": {"tags": ["Series"], "summary": "Calculate series price estimate.", "description": "Calculate price estimate for a series before creation.\n\nReturns the estimated total cost based on the series parameters and current\ncontract pricing. The estimate is not a commitment \u2014 actual charges occur\nper-order when child orders are created.", "operationId": "calculate-series-price-estimate", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SeriesRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SeriesPriceResponse"}}}}, "400": {"description": "Malformed request body", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "403": {"description": "Product not available on contract", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation error or invalid withhold/licence level option", "content": {"application/json": {"schema": {"anyOf": [{"$ref": "#/components/schemas/ValidationErrorResponse"}, {"$ref": "#/components/schemas/ErrorResponse"}], "title": "Response 422 Calculate-Series-Price-Estimate"}}}}}}}, "/{contract_id}/tasking/series/{series_id}/cancel": {"post": {"tags": ["Series"], "summary": "Cancel a tasking series.", "description": "Cancel a tasking series.\n\nCancels the series and prevents future child orders from being created.\nThis operation is idempotent \u2014 cancelling an already-cancelled series\nsucceeds with 204. A series that has already completed cannot be\ncancelled and returns 409.", "operationId": "cancel-series", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "series_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Series ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Series Id"}, "description": "Series ID"}], "responses": {"204": {"description": "Successful Response"}, "404": {"description": "Series not found", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "409": {"description": "Series has already completed", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/{contract_id}/tasking/series/{series_id}/download": {"get": {"tags": ["Series"], "summary": "Download a tasking series.", "description": "Download the items for all fulfilled orders in a tasking series as a single\nbundle.\n\nAll linked collections (e.g. primary, surface-brightness-temperature) are\ndownloaded by default with GeoTIFF format for the primary collection. Use\nthe collections and primary_formats parameters to select a subset, applied\nacross the whole series.", "operationId": "download-series", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}, {"name": "series_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Series ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Series Id"}, "description": "Series ID"}, {"name": "redirect", "in": "query", "required": false, "schema": {"type": "boolean", "description": "If `true` download the image content locally, otherwise if `false` return a presigned download URL with an expiry. Defaults to `true`.", "default": true, "title": "Redirect"}, "description": "If `true` download the image content locally, otherwise if `false` return a presigned download URL with an expiry. Defaults to `true`."}, {"name": "collections", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"enum": ["primary", "surface-brightness-temperature"], "type": "string"}}, {"type": "null"}], "title": "Collections", "description": "Specify a subset of collections to download.\n        Defaults to all linked collections (e.g. primary,\n        surface-brightness-temperature) with GeoTIFF format for primary.\n        To specify multiple collections, repeat the query parameter.\n        "}, "description": "Specify a subset of collections to download.\n        Defaults to all linked collections (e.g. primary,\n        surface-brightness-temperature) with GeoTIFF format for primary.\n        To specify multiple collections, repeat the query parameter.\n        "}, {"name": "primary_formats", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"enum": ["geotiff", "nitf"], "type": "string"}}, {"type": "null"}], "title": "Primary Formats", "description": "Specify a file format to download.\n            Defaults to geotiff, which will download without nitf.\n            To specify multiple formats, repeat the query parameter.\n            If NITF is specified but not available for an item, GeoTIFF will be provided instead.\n            "}, "description": "Specify a file format to download.\n            Defaults to geotiff, which will download without nitf.\n            To specify multiple formats, repeat the query parameter.\n            If NITF is specified but not available for an item, GeoTIFF will be provided instead.\n            "}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/OrderItemDownloadUrl"}}}}, "202": {"description": "Download is being prepared. Retry after the specified number of seconds; the `progress` field reports packaging progress.", "headers": {"Retry-After": {"description": "Number of seconds to wait before retrying the download", "schema": {"type": "integer"}}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DownloadPending"}}}}, "307": {"description": "Temporary redirect to the download URL", "headers": {"Cache-Control": {"description": "Cache control directives to prevent caching of the redirect", "schema": {"type": "string"}}}}, "403": {"description": "Forbidden"}, "404": {"description": "Not Found"}, "422": {"description": "NITF format requested for non-primary collection", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}}}}, "/{contract_id}/search/": {"post": {"summary": "Search", "description": "Search for feasibility requests/responses and tasking orders owned by the user.", "operationId": "search", "security": [{"SatVuAuth": []}], "parameters": [{"name": "contract_id", "in": "path", "required": true, "schema": {"type": "string", "format": "uuid", "description": "Contract ID", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"], "title": "Contract Id"}, "description": "Contract ID"}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchRequest"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchResponse"}}}}, "400": {"description": "Malformed request body", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ErrorResponse"}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}}, "components": {"schemas": {"Asset": {"properties": {"href": {"type": "string", "minLength": 1, "format": "uri", "title": "Href", "description": "The URI to the asset object."}, "type": {"type": "string", "title": "Type", "description": "The media type of the asset."}, "roles": {"items": {"type": "string"}, "type": "array", "title": "Roles", "description": "The semantic roles of the asset (e.g., 'thumbnail', 'data', 'metadata')."}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title", "description": "A human readable title for the asset."}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Description", "description": "A description of the asset."}}, "additionalProperties": true, "type": "object", "required": ["href", "type"], "title": "Asset", "description": "STAC Asset object.\n\nAn Asset is a file associated with a STAC Item that can be downloaded\nor accessed. Each asset has a URI, media type, and semantic roles."}, "AssuredFeasibilityFields": {"properties": {"product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the request, measured from the time the request is made. The upper bound must not extend further into the future than the contract's assured tasking window; feasibility results only include passes from the request time onwards."}}, "additionalProperties": false, "type": "object", "required": ["product", "datetime"], "title": "AssuredFeasibilityFields"}, "AssuredFeasibilityFieldsWithAddons": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract.", "examples": ["PT0H"]}, "product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the request, measured from the time the request is made. The upper bound must not extend further into the future than the contract's assured tasking window; feasibility results only include passes from the request time onwards."}}, "additionalProperties": false, "type": "object", "required": ["product", "datetime"], "title": "AssuredFeasibilityFieldsWithAddons"}, "AssuredFeasibilityResponseFeature": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"$ref": "#/components/schemas/AssuredFeasibilityResponseProperties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "The ID of the feasibility request.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "signature": {"type": "string", "title": "Signature", "description": "Signature token."}}, "type": "object", "required": ["type", "geometry", "properties", "id", "signature"], "title": "AssuredFeasibilityResponseFeature", "description": "Object representing an assured feasibility response."}, "AssuredFeasibilityResponseProperties": {"properties": {"product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the response."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the feasibility response was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the feasibility response was last updated."}, "price": {"anyOf": [{"$ref": "#/components/schemas/Price"}, {"type": "null"}], "description": "Pricing information."}, "min_sun_el": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Sun El", "description": "The minimum sun elevation angle of the pass. Measured in decimal degrees from the horizontal."}, "max_sun_el": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Sun El", "description": "The maximum sun elevation angle of the pass. Measured in decimal degrees from the horizontal."}, "min_gsd": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Gsd", "description": "The minimum ground sample distance value of the pass. Measured in metres representing the square root of the area of the pixel size projected onto the earth."}, "max_gsd": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Gsd", "description": "The maximum ground sample distance value of the pass. Measured in metres representing the square root of the area of the pixel size projected onto the earth."}, "min_off_nadir": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees."}, "max_off_nadir": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees."}}, "type": "object", "required": ["product", "datetime", "created_at", "updated_at"], "title": "AssuredFeasibilityResponseProperties", "description": "Properties of the assured priority feasibility response."}, "AssuredOrderRequest": {"properties": {"properties": {"$ref": "#/components/schemas/AssuredOrderRequestProperties"}}, "additionalProperties": false, "type": "object", "required": ["properties"], "title": "AssuredOrderRequest"}, "AssuredOrderRequestProperties": {"properties": {"name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "signature": {"type": "string", "title": "Signature", "description": "Signature token."}}, "additionalProperties": false, "type": "object", "required": ["product", "signature"], "title": "AssuredOrderRequestProperties"}, "AssuredStoredFeasibilityRequestProperties": {"properties": {"product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the request, measured from the time the request is made. The upper bound must not extend further into the future than the contract's assured tasking window; feasibility results only include passes from the request time onwards."}, "status": {"$ref": "#/components/schemas/FeasibilityRequestStatus"}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the feasibility request was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the feasibility request was last updated."}}, "additionalProperties": false, "type": "object", "required": ["product", "datetime", "status", "created_at", "updated_at"], "title": "AssuredStoredFeasibilityRequestProperties", "description": "Properties of the stored assured priority feasibility request."}, "Collections": {"type": "string", "enum": ["feasibility_requests", "feasibility_responses", "orders"], "title": "Collections"}, "DayNightMode": {"type": "string", "enum": ["day", "night", "day-night"], "title": "DayNightMode"}, "DownloadPending": {"properties": {"message": {"type": "string", "title": "Message", "description": "Human-readable status message. Also see the `Retry-After` header."}, "progress": {"$ref": "#/components/schemas/DownloadProgress", "description": "Progress information for the in-flight download bundling job."}}, "type": "object", "required": ["message", "progress"], "title": "DownloadPending", "description": "Response payload returned while a download is still being prepared."}, "DownloadProgress": {"properties": {"total": {"type": "integer", "title": "Total", "description": "The total number of files the bundler is packaging.", "examples": [43]}, "done": {"type": "integer", "title": "Done", "description": "The number of files the bundler has already packaged.", "examples": [17]}}, "type": "object", "required": ["total", "done"], "title": "DownloadProgress", "description": "Progress information for an in-flight download bundling job."}, "EditOrderPayload": {"properties": {"geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}], "description": "The location of the order. Only editable for Standard orders in Created/Staged states."}, "properties": {"anyOf": [{"$ref": "#/components/schemas/EditOrderProperties"}, {"type": "null"}], "description": "The properties to edit in the order."}}, "additionalProperties": false, "type": "object", "title": "EditOrderPayload", "description": "Payload for editing an order.\n\nGeometry can be edited for Standard orders in Created/Staged states.\nAll property fields are optional - only provided fields will be updated."}, "EditOrderProperties": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "start_time": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Start Time", "description": "The start of the tasking window. Only editable for Standard orders in Created/Staged states.", "examples": ["2023-03-22T12:50:24+01:00"]}, "end_time": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "End Time", "description": "The end of the tasking window. Only editable for Standard orders in Created/Staged states.", "examples": ["2023-03-29T12:50:24+01:00"]}, "satvu:day_night_mode": {"anyOf": [{"$ref": "#/components/schemas/DayNightMode"}, {"type": "null"}], "description": "The mode of data capture. Only editable for Standard orders in Created/Staged states."}, "max_cloud_cover": {"anyOf": [{"type": "integer", "maximum": 100.0, "minimum": 25.0}, {"type": "null"}], "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Only editable for Standard orders in Created/Staged states."}, "min_off_nadir": {"anyOf": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"type": "null"}], "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Only editable for Standard orders in Created/Staged states."}, "max_off_nadir": {"anyOf": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"type": "null"}], "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Only editable for Standard orders in Created/Staged states."}}, "additionalProperties": false, "type": "object", "title": "EditOrderProperties", "description": "Properties that can be edited in an order.\n\nAll fields are optional - only provided fields will be updated.\nPlatform-only parameters (name, withhold, licence_level) can be edited at any time.\nTasking parameters can only be edited for Standard orders in Created/Staged states."}, "EditSeriesProperties": {"properties": {"name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "Optional human-readable label."}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}], "description": "Updated target location for future child orders."}, "order_parameters": {"anyOf": [{"$ref": "#/components/schemas/SeriesOrderParameters"}, {"type": "null"}], "description": "Updated template for future child orders."}, "frequency": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Frequency", "description": "Updated ISO 8601 recurrence interval (e.g. P7D, P14D, P1M)."}, "total_order_count": {"anyOf": [{"type": "integer", "minimum": 1.0}, {"type": "null"}], "title": "Total Order Count", "description": "Updated total planned orders (must be >= orders_created_count). Provide either this or end_date."}, "end_date": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "End Date", "description": "Updated end date. If provided instead of total_order_count, total_order_count is derived as (end_date - start_date) / frequency, rounded up to the nearest whole number. Must be after start_date."}}, "additionalProperties": false, "type": "object", "title": "EditSeriesProperties", "description": "Editable fields for series updates."}, "ErrorResponse": {"properties": {"detail": {"type": "string", "title": "Detail"}}, "type": "object", "required": ["detail"], "title": "ErrorResponse", "description": "Standard error response for custom HTTP exceptions.\n\nUsed when raising HTTPException with a string detail message."}, "ExtraIgnoreAssuredFeasibilityResponseProperties": {"properties": {"product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the response."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the feasibility response was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the feasibility response was last updated."}, "price": {"anyOf": [{"$ref": "#/components/schemas/Price"}, {"type": "null"}], "description": "Pricing information."}, "min_sun_el": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Sun El", "description": "The minimum sun elevation angle of the pass. Measured in decimal degrees from the horizontal."}, "max_sun_el": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Sun El", "description": "The maximum sun elevation angle of the pass. Measured in decimal degrees from the horizontal."}, "min_gsd": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Gsd", "description": "The minimum ground sample distance value of the pass. Measured in metres representing the square root of the area of the pixel size projected onto the earth."}, "max_gsd": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Gsd", "description": "The maximum ground sample distance value of the pass. Measured in metres representing the square root of the area of the pixel size projected onto the earth."}, "min_off_nadir": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees."}, "max_off_nadir": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees."}}, "additionalProperties": true, "type": "object", "required": ["product", "datetime", "created_at", "updated_at"], "title": "ExtraIgnoreAssuredFeasibilityResponseProperties"}, "FeasibilityRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/StandardRequestProperties"}, {"$ref": "#/components/schemas/AssuredFeasibilityFields"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}}, "additionalProperties": false, "type": "object", "required": ["type", "geometry", "properties"], "title": "FeasibilityRequest", "description": "Payload for feasibility request."}, "FeasibilityRequestStatus": {"type": "string", "enum": ["pending", "processing", "failed", "feasible", "not feasible"], "title": "FeasibilityRequestStatus", "description": "The status of the feasibility request."}, "FeasibilityResponse": {"properties": {"type": {"type": "string", "const": "FeatureCollection", "title": "Type"}, "features": {"items": {"anyOf": [{"$ref": "#/components/schemas/StandardFeasibilityResponseFeature"}, {"$ref": "#/components/schemas/AssuredFeasibilityResponseFeature"}]}, "type": "array", "title": "Features", "description": "Properties of the feasibility response."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "Feasibility Request ID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "List of link objects to resources and related URLS."}, "status": {"$ref": "#/components/schemas/FeasibilityRequestStatus", "description": "Status of the feasibility response."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}}, "type": "object", "required": ["type", "features", "id", "links", "status", "contract_id"], "title": "FeasibilityResponse", "description": "FeatureCollection model for stored feasibility response"}, "Filter": {"type": "string", "enum": ["DAY", "NIGHT"], "title": "Filter"}, "FilterFields": {"properties": {"status": {"anyOf": [{"type": "string"}, {"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "title": "Status", "examples": [["feasible", " not feasible"]]}, "min_off_nadir": {"anyOf": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"prefixItems": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"type": "integer", "maximum": 45.0, "minimum": 0.0}], "items": false, "type": "array", "maxItems": 2, "minItems": 2}, {"type": "null"}], "title": "Min Off Nadir", "examples": [10]}, "max_off_nadir": {"anyOf": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"prefixItems": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"type": "integer", "maximum": 45.0, "minimum": 0.0}], "items": false, "type": "array", "maxItems": 2, "minItems": 2}, {"type": "null"}], "title": "Max Off Nadir", "examples": [30]}}, "additionalProperties": false, "type": "object", "title": "FilterFields"}, "FullWellCapacitance": {"type": "integer", "enum": [0, 1], "title": "FullWellCapacitance"}, "GeometryCollection": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "GeometryCollection", "title": "Type"}, "geometries": {"items": {"oneOf": [{"$ref": "#/components/schemas/Point"}, {"$ref": "#/components/schemas/MultiPoint"}, {"$ref": "#/components/schemas/LineString"}, {"$ref": "#/components/schemas/MultiLineString"}, {"$ref": "#/components/schemas/Polygon"}, {"$ref": "#/components/schemas/MultiPolygon"}, {"$ref": "#/components/schemas/GeometryCollection"}], "discriminator": {"propertyName": "type", "mapping": {"GeometryCollection": "#/components/schemas/GeometryCollection", "LineString": "#/components/schemas/LineString", "MultiLineString": "#/components/schemas/MultiLineString", "MultiPoint": "#/components/schemas/MultiPoint", "MultiPolygon": "#/components/schemas/MultiPolygon", "Point": "#/components/schemas/Point", "Polygon": "#/components/schemas/Polygon"}}}, "type": "array", "title": "Geometries"}}, "type": "object", "required": ["type", "geometries"], "title": "GeometryCollection", "description": "GeometryCollection Model"}, "GetAssuredOrderProperties": {"properties": {"stac:item_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Stac:Item Id", "description": "The item id of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Stac:Datetime", "description": "The acquisition datetime of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Stac:Metadata", "description": "STAC item metadata including presigned asset URLs for high-resolution imagery, if the order has been fulfilled and high-res assets are available."}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "signature": {"type": "string", "title": "Signature", "description": "Signature token."}, "status": {"$ref": "#/components/schemas/OrderStatus", "description": "The status of the order."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the order was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the order was last updated."}, "status_history": {"items": {"$ref": "#/components/schemas/StatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes for this order, newest first."}}, "type": "object", "required": ["product", "datetime", "signature", "status", "created_at", "updated_at"], "title": "GetAssuredOrderProperties", "description": "Feature properties model for get assured order request"}, "GetOrderResponse": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/GetStandardOrderProperties"}, {"$ref": "#/components/schemas/GetAssuredOrderProperties"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "Order ID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of related links for the order."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}}, "type": "object", "required": ["type", "geometry", "properties", "id", "links", "contract_id", "price"], "title": "GetOrderResponse", "description": "Payload for get order response."}, "GetStandardOrderProperties": {"properties": {"stac:item_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Stac:Item Id", "description": "The item id of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Stac:Datetime", "description": "The acquisition datetime of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Stac:Metadata", "description": "STAC item metadata including presigned asset URLs for high-resolution imagery, if the order has been fulfilled and high-res assets are available."}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "status": {"$ref": "#/components/schemas/OrderStatus", "description": "The status of the order."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the order was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the order was last updated."}, "status_history": {"items": {"$ref": "#/components/schemas/StatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes for this order, newest first."}}, "type": "object", "required": ["datetime", "status", "created_at", "updated_at"], "title": "GetStandardOrderProperties", "description": "Feature properties model for get standard order request"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "LineString": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "LineString", "title": "Type"}, "coordinates": {"items": {"anyOf": [{"$ref": "#/components/schemas/Position2D"}, {"$ref": "#/components/schemas/Position3D"}]}, "type": "array", "minItems": 2, "title": "Coordinates"}}, "type": "object", "required": ["type", "coordinates"], "title": "LineString", "description": "LineString Model"}, "ListOrderTasksResponse": {"properties": {"order_id": {"type": "string", "format": "uuid", "title": "Order Id", "description": "The order these tasks belong to.", "examples": ["f1e2d3c4-b5a6-7890-abcd-ef1234567890"]}, "tasks": {"items": {"$ref": "#/components/schemas/TaskResponse"}, "type": "array", "title": "Tasks", "description": "Tasks sorted by creation date, newest first."}}, "type": "object", "required": ["order_id", "tasks"], "title": "ListOrderTasksResponse", "description": "Response for listing all tasks for an order."}, "ListOrderTasksUnavailableResponse": {"properties": {"order_id": {"type": "string", "format": "uuid", "title": "Order Id", "description": "The order ID.", "examples": ["f1e2d3c4-b5a6-7890-abcd-ef1234567890"]}, "tasks": {"type": "null", "title": "Tasks"}, "message": {"type": "string", "title": "Message", "description": "Explanation of why tasks are unavailable.", "default": "Tasking information is not available for this order.", "examples": ["Tasking information is not available for this order."]}}, "type": "object", "required": ["order_id"], "title": "ListOrderTasksUnavailableResponse", "description": "Response when task information is not available."}, "ListSeriesResponse": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "FeatureCollection", "title": "Type"}, "features": {"items": {"$ref": "#/components/schemas/StoredSeriesResponse"}, "type": "array", "title": "Features", "description": "List of series."}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "Links to previous and/or next page."}, "context": {"$ref": "#/components/schemas/ResponseContext"}}, "type": "object", "required": ["type", "features", "links", "context"], "title": "ListSeriesResponse", "description": "Paginated list of series."}, "ModifyFeasibilityRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}], "description": "The geometry of the modified order. If not provided, uses the existing order geometry."}, "properties": {"$ref": "#/components/schemas/ModifyFeasibilityRequestProperties", "description": "A map of additional metadata about the requested image."}}, "additionalProperties": false, "type": "object", "required": ["type", "properties"], "title": "ModifyFeasibilityRequest", "description": "Payload for modify feasibility request.\nOnly supports Standard orders. Assured orders cannot be modified.\nAll fields are optional - unspecified fields will be sourced from the existing order."}, "ModifyFeasibilityRequestProperties": {"properties": {"datetime": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Datetime", "description": "The closed date-time interval of the modified tasking order request. Start date can be in the past, end date can be less than 7 days in the future, but minimum 7-day window must be maintained.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-30T12:50:24+01:00"]}, "satvu:day_night_mode": {"anyOf": [{"$ref": "#/components/schemas/DayNightMode"}, {"type": "null"}], "description": "The mode of data capture."}, "max_cloud_cover": {"anyOf": [{"type": "integer", "maximum": 100.0, "minimum": 25.0}, {"type": "null"}], "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Measured in percent."}, "min_off_nadir": {"anyOf": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"type": "null"}], "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees."}, "max_off_nadir": {"anyOf": [{"type": "integer", "maximum": 45.0, "minimum": 0.0}, {"type": "null"}], "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`."}}, "additionalProperties": false, "type": "object", "title": "ModifyFeasibilityRequestProperties", "description": "Properties for modify feasibility request.\nAll fields are optional - unspecified fields will be sourced from the existing order.\nOnly supports Standard product (Assured orders do not support modifications)."}, "MultiLineString": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "MultiLineString", "title": "Type"}, "coordinates": {"items": {"items": {"anyOf": [{"$ref": "#/components/schemas/Position2D"}, {"$ref": "#/components/schemas/Position3D"}]}, "type": "array", "minItems": 2}, "type": "array", "title": "Coordinates"}}, "type": "object", "required": ["type", "coordinates"], "title": "MultiLineString", "description": "MultiLineString Model"}, "MultiPoint": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "MultiPoint", "title": "Type"}, "coordinates": {"items": {"anyOf": [{"$ref": "#/components/schemas/Position2D"}, {"$ref": "#/components/schemas/Position3D"}]}, "type": "array", "title": "Coordinates"}}, "type": "object", "required": ["type", "coordinates"], "title": "MultiPoint", "description": "MultiPoint Model"}, "MultiPolygon": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "MultiPolygon", "title": "Type"}, "coordinates": {"items": {"items": {"items": {"anyOf": [{"$ref": "#/components/schemas/Position2D"}, {"$ref": "#/components/schemas/Position3D"}]}, "type": "array", "minItems": 4}, "type": "array"}, "type": "array", "title": "Coordinates"}}, "type": "object", "required": ["type", "coordinates"], "title": "MultiPolygon", "description": "MultiPolygon Model"}, "OrderItemDownloadUrl": {"properties": {"url": {"type": "string", "minLength": 1, "format": "uri", "title": "Url", "description": "The presigned download URL for the item."}, "ttl": {"type": "integer", "title": "Ttl", "description": "The time-to-live for the presigned download URL until it expires."}}, "type": "object", "required": ["url", "ttl"], "title": "OrderItemDownloadUrl", "description": "Payload for order item download URL response without redirect."}, "OrderModificationPrice": {"properties": {"original_order": {"$ref": "#/components/schemas/GetOrderResponse", "description": "The current state of the order with its current pricing."}, "updated_order": {"$ref": "#/components/schemas/GetOrderResponse", "description": "The projected state of the order after modifications with updated pricing."}}, "type": "object", "required": ["original_order", "updated_order"], "title": "OrderModificationPrice", "description": "Response model for order modification price estimates.\n\nShows the complete before/after state of an order including all\norder properties (geometry, datetime, tasking parameters, status,\nid, contract_id, links, etc.) along with the pricing information\nfor both states.\n\nThis allows users to see:\n- What the order looks like currently (original_order)\n- What the order will look like after modification (updated_order)\n- The exact price impact of the change"}, "OrderPrice": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/StandardOrderFieldsWithAddons"}, {"$ref": "#/components/schemas/AssuredFeasibilityFieldsWithAddons"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The current UTC time."}, "price": {"$ref": "#/components/schemas/PriceInformation"}}, "additionalProperties": false, "type": "object", "required": ["type", "geometry", "properties", "created_at", "price"], "title": "OrderPrice"}, "OrderStatus": {"type": "string", "enum": ["staged", "in progress", "fulfilled", "failed", "cancelled", "expired"], "title": "OrderStatus"}, "Outage": {"properties": {"satellite_name": {"type": "string", "title": "Satellite Name", "description": "The satellite affected by the outage."}, "start_time": {"type": "string", "format": "date-time", "title": "Start Time", "description": "The start datetime of the outage."}, "end_time": {"type": "string", "format": "date-time", "title": "End Time", "description": "The end datetime of the outage."}}, "type": "object", "required": ["satellite_name", "start_time", "end_time"], "title": "Outage", "description": "Model representing a satellite outage."}, "Point": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "Point", "title": "Type"}, "coordinates": {"anyOf": [{"$ref": "#/components/schemas/Position2D"}, {"$ref": "#/components/schemas/Position3D"}], "title": "Coordinates"}}, "type": "object", "required": ["type", "coordinates"], "title": "Point", "description": "Point Model"}, "PointGeometry": {"properties": {"type": {"type": "string", "const": "Point", "title": "Type", "default": "Point"}, "coordinates": {"prefixItems": [{"anyOf": [{"type": "number"}, {"type": "integer"}]}, {"anyOf": [{"type": "number"}, {"type": "integer"}]}], "items": false, "type": "array", "maxItems": 2, "minItems": 2, "title": "Coordinates", "description": "The coordinates of the point as [longitude, latitude]."}}, "type": "object", "required": ["coordinates"], "title": "PointGeometry", "description": "GeoJSON Point geometry.\n\nRepresents a single point location in WGS84 coordinates (longitude, latitude)."}, "Polygon": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "Polygon", "title": "Type"}, "coordinates": {"items": {"items": {"anyOf": [{"$ref": "#/components/schemas/Position2D"}, {"$ref": "#/components/schemas/Position3D"}]}, "type": "array", "minItems": 4}, "type": "array", "title": "Coordinates"}}, "type": "object", "required": ["type", "coordinates"], "title": "Polygon", "description": "Polygon Model"}, "PolygonGeometry": {"properties": {"type": {"type": "string", "const": "Polygon", "title": "Type", "default": "Polygon"}, "coordinates": {"items": {"items": {"prefixItems": [{"anyOf": [{"type": "number"}, {"type": "integer"}]}, {"anyOf": [{"type": "number"}, {"type": "integer"}]}], "items": false, "type": "array", "maxItems": 2, "minItems": 2}, "type": "array"}, "type": "array", "title": "Coordinates", "description": "The coordinates of the polygon. First ring is outer, rest are holes."}}, "type": "object", "required": ["coordinates"], "title": "PolygonGeometry", "description": "GeoJSON Polygon geometry.\n\nRepresents a polygon with an outer ring and optional holes.\nCoordinates must be in WGS84 (longitude, latitude) and the outer ring\nmust be closed (first and last coordinates must be the same)."}, "Position2D": {"prefixItems": [{"type": "number", "title": "Longitude"}, {"type": "number", "title": "Latitude"}], "type": "array", "maxItems": 2, "minItems": 2, "items": {}}, "Position3D": {"prefixItems": [{"type": "number", "title": "Longitude"}, {"type": "number", "title": "Latitude"}, {"type": "number", "title": "Altitude"}], "type": "array", "maxItems": 3, "minItems": 3, "items": {}}, "Price": {"properties": {"currency": {"type": "string", "title": "Currency", "description": "The currency of the order.", "examples": ["GBP"]}, "base": {"type": "integer", "title": "Base", "description": "The base price of the order in minor units of the currency e.g. pence, cents.", "examples": [100000]}, "addon:withhold": {"type": "integer", "title": "Addon:Withhold", "description": "The price of the order from the chosen withhold option in minor units of the currency e.g. pence, cents.", "examples": [10000]}, "licence_level": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Licence Level", "description": "The price of the order from the chosen licence level in minor units of the currency e.g. pence, cents.", "examples": [10000]}, "total": {"type": "integer", "title": "Total", "description": "The total price of the order in minor units of the currency e.g. pence, cents. This is the sum of the base and addon prices.", "examples": [120000]}, "total_uplift": {"type": "integer", "title": "Total Uplift", "description": "The sum of all uplifts, including licencing, applied to the order in minor units of the currency e.g. pence, cents.", "examples": [20000]}, "value": {"type": "integer", "title": "Value", "description": "Price of the order in minor units of the currency e.g. pence, cents.", "deprecated": true, "examples": [120000]}}, "type": "object", "required": ["currency", "base", "addon:withhold", "total", "total_uplift", "value"], "title": "Price"}, "PriceInformation": {"properties": {"currency": {"type": "string", "title": "Currency", "description": "The currency of the order.", "examples": ["GBP"]}, "base": {"type": "integer", "title": "Base", "description": "The base price of the order in minor units of the currency e.g. pence, cents.", "examples": [100000]}, "addon:withhold": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The price of the order from the chosen withhold option in minor units of the currency e.g. pence, cents.", "examples": [10000]}, "licence_level": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Licence Level", "description": "The price of the order from the chosen licence level in minor units of the currency e.g. pence, cents.", "examples": [10000]}, "total": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Total", "description": "The total price of the order in minor units of the currency e.g. pence, cents. This is the sum of the base and addon prices.", "examples": [120000]}, "total_uplift": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Total Uplift", "description": "The sum of all uplifts, including licencing, applied to the order in minor units of the currency e.g. pence, cents.", "examples": [20000]}, "value": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Value", "description": "Price of the order in minor units of the currency e.g. pence, cents.", "deprecated": true, "examples": [120000]}, "final": {"type": "boolean", "title": "Final", "description": "Whether the price is final. When the `baseprice` query parameter is true, this will be false as the price may change at order submission time after relevant addons and required licence level have been accounted for."}}, "type": "object", "required": ["currency", "base", "final"], "title": "PriceInformation", "description": "Pricing information."}, "PriceRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/StandardPriceRequestProperties"}, {"$ref": "#/components/schemas/AssuredFeasibilityFieldsWithAddons"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}}, "additionalProperties": false, "type": "object", "required": ["type", "geometry", "properties"], "title": "PriceRequest", "description": "Payload for price request."}, "ReadoutMode": {"type": "string", "enum": ["IWR", "ITR"], "title": "ReadoutMode"}, "RequestMethod": {"type": "string", "enum": ["GET", "POST"], "title": "RequestMethod"}, "ResellerAssuredOrderRequest": {"properties": {"properties": {"$ref": "#/components/schemas/AssuredOrderRequestProperties"}, "reseller_end_user_id": {"type": "string", "format": "uuid", "title": "Reseller End User Id"}}, "additionalProperties": false, "type": "object", "required": ["properties", "reseller_end_user_id"], "title": "ResellerAssuredOrderRequest", "description": "Payload for reseller assured order request."}, "ResellerGetOrderResponse": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/GetStandardOrderProperties"}, {"$ref": "#/components/schemas/GetAssuredOrderProperties"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "Order ID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of related links for the order."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "reseller_end_user_id": {"type": "string", "format": "uuid", "title": "Reseller End User Id"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "links", "contract_id", "price", "reseller_end_user_id"], "title": "ResellerGetOrderResponse", "description": "Payload for reseller get order response."}, "ResellerSearchResponseFeatureAssuredOrderRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/SearchAssuredOrderProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "reseller_end_user_id": {"type": "string", "format": "uuid", "title": "Reseller End User Id"}, "feature_type": {"type": "string", "const": "reseller-order-request-assured", "title": "Feature Type", "default": "reseller-order-request-assured"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection", "price", "reseller_end_user_id"], "title": "ResellerSearchResponseFeatureAssuredOrderRequest"}, "ResellerSearchResponseFeatureStandardOrderRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/SearchStandardOrderProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "reseller_end_user_id": {"type": "string", "format": "uuid", "title": "Reseller End User Id"}, "feature_type": {"type": "string", "const": "reseller-order-request-standard", "title": "Feature Type", "default": "reseller-order-request-standard"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection", "price", "reseller_end_user_id"], "title": "ResellerSearchResponseFeatureStandardOrderRequest"}, "ResellerStandardOrderRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"$ref": "#/components/schemas/StandardOrderRequestProperties", "description": "A map of additional metadata about the requested image."}, "reseller_end_user_id": {"type": "string", "format": "uuid", "title": "Reseller End User Id"}}, "additionalProperties": false, "type": "object", "required": ["type", "geometry", "properties", "reseller_end_user_id"], "title": "ResellerStandardOrderRequest", "description": "Payload for reseller standard order request."}, "ResellerStoredOrderResponse": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/StoredStandardOrderRequestProperties"}, {"$ref": "#/components/schemas/StoredAssuredOrderRequestProperties"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "Order ID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of related links for the order."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "reseller_end_user_id": {"type": "string", "format": "uuid", "title": "Reseller End User Id"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "links", "contract_id", "price", "reseller_end_user_id"], "title": "ResellerStoredOrderResponse", "description": "Payload for reseller stored order response."}, "ResponseContext": {"properties": {"limit": {"type": "integer", "title": "Limit", "description": "Applied per page item limit.", "examples": [25]}, "matched": {"type": "integer", "title": "Matched", "description": "Total number of results.", "examples": [10]}, "returned": {"type": "integer", "title": "Returned", "description": "Number of returned items in page.", "examples": [10]}}, "type": "object", "required": ["limit", "matched", "returned"], "title": "ResponseContext", "description": "Context about the response."}, "SearchAssuredOrderProperties": {"properties": {"stac:item_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Stac:Item Id", "description": "The item id of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Stac:Datetime", "description": "The acquisition datetime of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Stac:Metadata", "description": "STAC item metadata including presigned asset URLs for high-resolution imagery, if the order has been fulfilled and high-res assets are available."}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "signature": {"type": "string", "title": "Signature", "description": "Signature token."}, "status": {"$ref": "#/components/schemas/OrderStatus", "description": "The status of the order."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the order was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the order was last updated."}, "status_history": {"items": {"$ref": "#/components/schemas/StatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes for this order, newest first."}}, "type": "object", "required": ["product", "datetime", "signature", "status", "created_at", "updated_at"], "title": "SearchAssuredOrderProperties", "description": "Search response properties for assured orders"}, "SearchRequest": {"properties": {"token": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Token", "description": "The pagination token."}, "limit": {"anyOf": [{"type": "integer", "maximum": 100.0, "minimum": 1.0}, {"type": "null"}], "title": "Limit", "description": "The number of items to return per page.", "default": 25}, "collections": {"anyOf": [{"items": {"$ref": "#/components/schemas/Collections"}, "type": "array"}, {"type": "null"}], "title": "Collections", "description": "A list of collection types.", "default": [], "examples": [["feasibility_requests"]]}, "ids": {"anyOf": [{"items": {"type": "string", "format": "uuid"}, "type": "array"}, {"type": "null"}], "title": "Ids", "description": "A list of IDs.", "examples": [["1ed44bb9-064e-4973-b15a-c5cc460d6677"]]}, "series_ids": {"anyOf": [{"items": {"type": "string", "format": "uuid"}, "type": "array"}, {"type": "null"}], "title": "Series Ids", "description": "Filter results by series IDs. Only orders belonging to these series are returned.", "examples": [["1ed44bb9-064e-4973-b15a-c5cc460d6677"]]}, "datetime": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Datetime", "description": ""}, "created_at": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Created At", "description": "The datetime interval during which the entity was created.", "examples": ["2023-01-01T00:00:00+01:00/2023-02-01T00:00:00+01:00"]}, "updated_at": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Updated At", "description": "The datetime interval during which the entity was last updated.", "examples": ["2023-01-01T00:00:00+01:00/2023-02-01T00:00:00+01:00"]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/FilterFields"}, {"type": "null"}], "description": "Allowed properties to filter a search. Filterable string fields allow one value or a list of values resulting in an equality or 'IN' comparison respectively. For numeric fields, one value similarly achieves an equality operation. A tuple of 2 values can also be provided to search inclusively between a range."}, "intersects": {"anyOf": [{"oneOf": [{"$ref": "#/components/schemas/Point"}, {"$ref": "#/components/schemas/MultiPoint"}, {"$ref": "#/components/schemas/LineString"}, {"$ref": "#/components/schemas/MultiLineString"}, {"$ref": "#/components/schemas/Polygon"}, {"$ref": "#/components/schemas/MultiPolygon"}, {"$ref": "#/components/schemas/GeometryCollection"}], "discriminator": {"propertyName": "type", "mapping": {"GeometryCollection": "#/components/schemas/GeometryCollection", "LineString": "#/components/schemas/LineString", "MultiLineString": "#/components/schemas/MultiLineString", "MultiPoint": "#/components/schemas/MultiPoint", "MultiPolygon": "#/components/schemas/MultiPolygon", "Point": "#/components/schemas/Point", "Polygon": "#/components/schemas/Polygon"}}}, {"type": "null"}], "title": "Intersects", "description": "A GeoJSON geometry to filter for. Items are returned if the geometry of the item intersects with the geometry provided."}, "sort_by": {"anyOf": [{"items": {"$ref": "#/components/schemas/SortEntities"}, "type": "array"}, {"type": "null"}], "title": "Sort By", "description": "Sort the order in which results are returned."}}, "additionalProperties": false, "type": "object", "title": "SearchRequest"}, "SearchResponse": {"properties": {"type": {"type": "string", "const": "FeatureCollection", "title": "Type"}, "features": {"items": {"oneOf": [{"$ref": "#/components/schemas/SearchResponseFeatureStandardFeasibilityRequest"}, {"$ref": "#/components/schemas/SearchResponseFeatureAssuredFeasibilityRequest"}, {"$ref": "#/components/schemas/SearchResponseFeatureStandardFeasibilityResponse"}, {"$ref": "#/components/schemas/SearchResponseFeatureAssuredFeasibilityResponse"}, {"$ref": "#/components/schemas/SearchResponseFeatureStandardOrderRequest"}, {"$ref": "#/components/schemas/SearchResponseFeatureAssuredOrderRequest"}, {"$ref": "#/components/schemas/ResellerSearchResponseFeatureStandardOrderRequest"}, {"$ref": "#/components/schemas/ResellerSearchResponseFeatureAssuredOrderRequest"}], "discriminator": {"propertyName": "feature_type", "mapping": {"feasibility-request-assured": "#/components/schemas/SearchResponseFeatureAssuredFeasibilityRequest", "feasibility-request-standard": "#/components/schemas/SearchResponseFeatureStandardFeasibilityRequest", "feasibility-response-assured": "#/components/schemas/SearchResponseFeatureAssuredFeasibilityResponse", "feasibility-response-standard": "#/components/schemas/SearchResponseFeatureStandardFeasibilityResponse", "order-request-assured": "#/components/schemas/SearchResponseFeatureAssuredOrderRequest", "order-request-standard": "#/components/schemas/SearchResponseFeatureStandardOrderRequest", "reseller-order-request-assured": "#/components/schemas/ResellerSearchResponseFeatureAssuredOrderRequest", "reseller-order-request-standard": "#/components/schemas/ResellerSearchResponseFeatureStandardOrderRequest"}}}, "type": "array", "title": "Features", "description": "A list of features that match the search filters."}, "context": {"$ref": "#/components/schemas/ResponseContext", "description": "Context about the search response."}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to next and/or previous pages of the search."}}, "type": "object", "required": ["type", "features", "context", "links"], "title": "SearchResponse"}, "SearchResponseFeatureAssuredFeasibilityRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/AssuredStoredFeasibilityRequestProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "feature_type": {"type": "string", "const": "feasibility-request-assured", "title": "Feature Type", "default": "feasibility-request-assured"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection"], "title": "SearchResponseFeatureAssuredFeasibilityRequest"}, "SearchResponseFeatureAssuredFeasibilityResponse": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/ExtraIgnoreAssuredFeasibilityResponseProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "feature_type": {"type": "string", "const": "feasibility-response-assured", "title": "Feature Type", "default": "feasibility-response-assured"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection"], "title": "SearchResponseFeatureAssuredFeasibilityResponse"}, "SearchResponseFeatureAssuredOrderRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/SearchAssuredOrderProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "feature_type": {"type": "string", "const": "order-request-assured", "title": "Feature Type", "default": "order-request-assured"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection", "price"], "title": "SearchResponseFeatureAssuredOrderRequest"}, "SearchResponseFeatureStandardFeasibilityRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/StandardStoredFeasibilityRequestProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "feature_type": {"type": "string", "const": "feasibility-request-standard", "title": "Feature Type", "default": "feasibility-request-standard"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection"], "title": "SearchResponseFeatureStandardFeasibilityRequest"}, "SearchResponseFeatureStandardFeasibilityResponse": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/StandardFeasibilityResponseProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "feature_type": {"type": "string", "const": "feasibility-response-standard", "title": "Feature Type", "default": "feasibility-response-standard"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection"], "title": "SearchResponseFeatureStandardFeasibilityResponse"}, "SearchResponseFeatureStandardOrderRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/Point"}, {"type": "null"}]}, "properties": {"anyOf": [{"$ref": "#/components/schemas/SearchStandardOrderProperties"}, {"type": "null"}]}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "ID of an item associated with the search parameters.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID associated with the search.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "collection": {"type": "string", "title": "Collection", "description": "Name of collection associated with the search result item.", "examples": ["feasibility"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of links to the STAC item that fulfilled the order, if applicable.", "default": []}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "feature_type": {"type": "string", "const": "order-request-standard", "title": "Feature Type", "default": "order-request-standard"}}, "type": "object", "required": ["type", "geometry", "properties", "id", "contract_id", "collection", "price"], "title": "SearchResponseFeatureStandardOrderRequest"}, "SearchStandardOrderProperties": {"properties": {"stac:item_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Stac:Item Id", "description": "The item id of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Stac:Datetime", "description": "The acquisition datetime of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Stac:Metadata", "description": "STAC item metadata including presigned asset URLs for high-resolution imagery, if the order has been fulfilled and high-res assets are available."}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "status": {"$ref": "#/components/schemas/OrderStatus", "description": "The status of the order."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the order was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the order was last updated."}, "status_history": {"items": {"$ref": "#/components/schemas/StatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes for this order, newest first."}}, "type": "object", "required": ["datetime", "status", "created_at", "updated_at"], "title": "SearchStandardOrderProperties", "description": "Search response properties for standard orders"}, "SeriesOrderParameters": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 25.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}}, "additionalProperties": false, "type": "object", "title": "SeriesOrderParameters", "description": "Template parameters applied to each child order in the series."}, "SeriesPrice": {"properties": {"currency": {"type": "string", "title": "Currency", "description": "ISO 4217 currency code."}, "base": {"type": "integer", "title": "Base", "description": "Base price per order in smallest currency unit."}, "addon:withhold": {"type": "integer", "title": "Addon:Withhold", "description": "Withhold addon price per order in smallest currency unit."}, "licence_level": {"type": "integer", "title": "Licence Level", "description": "Licence level addon price per order in smallest currency unit."}, "total_price_order": {"type": "integer", "title": "Total Price Order", "description": "Total price per order (base + addons) in smallest currency unit."}, "total_uplift_order": {"type": "integer", "title": "Total Uplift Order", "description": "Total addon uplift per order (addon:withhold + licence_level) in smallest currency unit."}, "total_order_count": {"type": "integer", "title": "Total Order Count", "description": "Total number of orders in the series."}, "total_base_price_series": {"type": "integer", "title": "Total Base Price Series", "description": "Total base price across all planned orders (base \u00d7 total_order_count)."}, "total_uplift_series": {"type": "integer", "title": "Total Uplift Series", "description": "Total addon uplift across all planned orders (total_uplift_order \u00d7 total_order_count)."}, "total_price_series": {"type": "integer", "title": "Total Price Series", "description": "Total price across all planned orders (total_price_order \u00d7 total_order_count)."}}, "type": "object", "required": ["currency", "base", "addon:withhold", "licence_level", "total_price_order", "total_uplift_order", "total_order_count", "total_base_price_series", "total_uplift_series", "total_price_series"], "title": "SeriesPrice", "description": "Price breakdown for a series, calculated at creation time."}, "SeriesPriceResponse": {"properties": {"price": {"$ref": "#/components/schemas/SeriesPrice", "description": "Price breakdown for the series."}}, "type": "object", "required": ["price"], "title": "SeriesPriceResponse", "description": "Price estimate for a series before creation."}, "SeriesProperties": {"properties": {"name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "Optional human-readable label for this series.", "examples": ["Weekly coastal survey"]}, "frequency": {"type": "string", "title": "Frequency", "description": "ISO 8601 duration string for the recurrence interval (e.g. P7D, P14D, P1M). Minimum 7 days.", "examples": ["P14D"]}, "start_date": {"type": "string", "format": "date-time", "title": "Start Date", "description": "When the first order should be created.", "examples": ["2026-06-01T00:00:00Z"]}, "total_order_count": {"anyOf": [{"type": "integer", "minimum": 1.0}, {"type": "null"}], "title": "Total Order Count", "description": "Total number of orders to create. Provide either this or end_date."}, "end_date": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "End Date", "description": "Optional end date. If provided instead of total_order_count, total_order_count is derived as (end_date - start_date) / frequency, rounded up to the nearest whole number.", "examples": ["2026-12-01T00:00:00Z"]}, "order_parameters": {"$ref": "#/components/schemas/SeriesOrderParameters", "description": "Template parameters applied to each child order."}}, "additionalProperties": false, "type": "object", "required": ["frequency", "start_date", "order_parameters"], "title": "SeriesProperties", "description": "Properties for a series creation request.\n\nProvide either total_order_count or end_date to specify the series length."}, "SeriesRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"$ref": "#/components/schemas/SeriesProperties", "description": "A map of additional metadata about the requested image."}, "reseller_end_user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Reseller End User Id", "description": "End user UUID \u2014 required when the contract is a reseller contract."}}, "additionalProperties": false, "type": "object", "required": ["type", "geometry", "properties"], "title": "SeriesRequest", "description": "Request body for creating a recurring tasking series."}, "SortEntities": {"properties": {"field": {"$ref": "#/components/schemas/SortableField", "description": "The field to sort by."}, "direction": {"type": "string", "enum": ["asc", "desc"], "title": "Direction", "description": "The directionality of the sort."}}, "additionalProperties": false, "type": "object", "required": ["field", "direction"], "title": "SortEntities"}, "SortableField": {"type": "string", "enum": ["status"], "title": "SortableField"}, "StacFeature": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type", "default": "Feature"}, "stac_version": {"type": "string", "title": "Stac Version", "description": "The STAC version the Item implements.", "default": "1.0.0"}, "id": {"type": "string", "title": "Id", "description": "The unique identifier for this item.", "examples": ["20231029_093301_NS1"]}, "collection": {"type": "string", "title": "Collection", "description": "The ID of the STAC Collection this item belongs to."}, "geometry": {"anyOf": [{"$ref": "#/components/schemas/PointGeometry"}, {"$ref": "#/components/schemas/PolygonGeometry"}, {"type": "null"}], "title": "Geometry", "description": "Defines the full footprint of the asset represented by this item."}, "bbox": {"prefixItems": [{"anyOf": [{"type": "number"}, {"type": "integer"}]}, {"anyOf": [{"type": "number"}, {"type": "integer"}]}, {"anyOf": [{"type": "number"}, {"type": "integer"}]}, {"anyOf": [{"type": "number"}, {"type": "integer"}]}], "items": false, "type": "array", "maxItems": 4, "minItems": 4, "title": "Bbox", "description": "The bounding box of the asset represented by this item."}, "properties": {"additionalProperties": true, "type": "object", "title": "Properties", "description": "A map of additional metadata for the item."}, "links": {"items": {"$ref": "#/components/schemas/stac_tools__schemas__stac_base__Link"}, "type": "array", "title": "Links", "description": "A list of link objects to resources and related URLs."}, "assets": {"additionalProperties": {"$ref": "#/components/schemas/Asset"}, "type": "object", "title": "Assets", "description": "A map of asset objects that can be downloaded, each with a unique key."}, "stac_extensions": {"items": {"type": "string"}, "type": "array", "title": "Stac Extensions", "description": "A list of STAC extensions the Item implements."}}, "type": "object", "required": ["id", "collection", "bbox", "properties"], "title": "StacFeature", "description": "STAC Feature (Item).\n\nA STAC Item is a GeoJSON Feature with additional STAC-specific fields.\nIt represents a single spatiotemporal asset and includes links to related\nresources and downloadable assets."}, "StandardFeasibilityResponseFeature": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"$ref": "#/components/schemas/StandardFeasibilityResponseProperties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "The ID of the feasibility request.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}}, "type": "object", "required": ["type", "geometry", "properties", "id"], "title": "StandardFeasibilityResponseFeature", "description": "Object representing a standard feasibility response."}, "StandardFeasibilityResponseProperties": {"properties": {"satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the feasibility response was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the feasibility response was last updated."}, "price": {"anyOf": [{"$ref": "#/components/schemas/Price"}, {"type": "null"}], "description": "Pricing information."}, "min_sun_el": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Sun El", "description": "The minimum sun elevation angle of the pass. Measured in decimal degrees from the horizontal."}, "max_sun_el": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Sun El", "description": "The maximum sun elevation angle of the pass. Measured in decimal degrees from the horizontal."}, "min_gsd": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Min Gsd", "description": "The minimum ground sample distance value of the pass. Measured in metres representing the square root of the area of the pixel size projected onto the earth."}, "max_gsd": {"anyOf": [{"type": "number"}, {"type": "null"}], "title": "Max Gsd", "description": "The maximum ground sample distance value of the pass. Measured in metres representing the square root of the area of the pixel size projected onto the earth."}}, "type": "object", "required": ["datetime", "created_at", "updated_at"], "title": "StandardFeasibilityResponseProperties", "description": "Properties of the standard priority feasibility response."}, "StandardOrderFieldsWithAddons": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract.", "examples": ["PT0H"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}}, "type": "object", "required": ["datetime"], "title": "StandardOrderFieldsWithAddons"}, "StandardOrderRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"$ref": "#/components/schemas/StandardOrderRequestProperties", "description": "A map of additional metadata about the requested image."}}, "additionalProperties": false, "type": "object", "required": ["type", "geometry", "properties"], "title": "StandardOrderRequest", "description": "Payload for standard order request."}, "StandardOrderRequestProperties": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 25.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}}, "additionalProperties": false, "type": "object", "required": ["datetime"], "title": "StandardOrderRequestProperties"}, "StandardPriceRequestProperties": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract.", "examples": ["PT0H"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 25.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}}, "additionalProperties": false, "type": "object", "required": ["datetime"], "title": "StandardPriceRequestProperties"}, "StandardRequestProperties": {"properties": {"satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 25.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}}, "additionalProperties": false, "type": "object", "required": ["datetime"], "title": "StandardRequestProperties", "description": "Request properties with enforced minimum cloud cover for new orders."}, "StandardStoredFeasibilityRequestProperties": {"properties": {"satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "status": {"$ref": "#/components/schemas/FeasibilityRequestStatus"}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the feasibility request was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the feasibility request was last updated."}}, "type": "object", "required": ["datetime", "status", "created_at", "updated_at"], "title": "StandardStoredFeasibilityRequestProperties", "description": "Properties of the stored standard priority feasibility request."}, "StatusHistoryEntry": {"properties": {"status_from": {"anyOf": [{"$ref": "#/components/schemas/OrderStatus"}, {"type": "null"}], "description": "Previous status before transition (null for initial order creation).", "examples": ["staged"]}, "status_to": {"$ref": "#/components/schemas/OrderStatus", "description": "New status after transition.", "examples": ["staged"]}, "datetime_updated": {"type": "string", "format": "date-time", "title": "Datetime Updated", "description": "When the status transition occurred.", "examples": ["2026-03-22T10:00:00Z"]}, "reason": {"type": "string", "title": "Reason", "description": "Reason for the status change.", "examples": ["Task assigned to satellite", "Order created", "Unknown"]}}, "type": "object", "required": ["status_to", "datetime_updated", "reason"], "title": "StatusHistoryEntry", "description": "A single status transition in the order's lifecycle."}, "StoredAssuredOrderRequestProperties": {"properties": {"stac:item_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Stac:Item Id", "description": "The item id of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Stac:Datetime", "description": "The acquisition datetime of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Stac:Metadata", "description": "STAC item metadata including presigned asset URLs for high-resolution imagery, if the order has been fulfilled and high-res assets are available."}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "assured", "title": "Product", "description": "Assured Priority."}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "signature": {"type": "string", "title": "Signature", "description": "Signature token."}, "status": {"$ref": "#/components/schemas/OrderStatus", "description": "The status of the order."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the order was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the order was last updated."}, "status_history": {"items": {"$ref": "#/components/schemas/StatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes for this order, newest first."}}, "type": "object", "required": ["product", "datetime", "signature", "status", "created_at", "updated_at"], "title": "StoredAssuredOrderRequestProperties", "description": "Feature properties model for assured priority stored order"}, "StoredFeasibilityFeatureCollection": {"properties": {"type": {"type": "string", "const": "FeatureCollection", "title": "Type"}, "features": {"items": {"$ref": "#/components/schemas/StoredFeasibilityRequest"}, "type": "array", "title": "Features", "description": "List of stored feasibility requests."}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "Links to previous and/or next page."}, "context": {"$ref": "#/components/schemas/ResponseContext"}}, "type": "object", "required": ["type", "features", "links", "context"], "title": "StoredFeasibilityFeatureCollection", "description": "Payload for list stored feasibility requests response."}, "StoredFeasibilityRequest": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/StandardStoredFeasibilityRequestProperties"}, {"$ref": "#/components/schemas/AssuredStoredFeasibilityRequestProperties"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "Feasibility Request ID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of related links for the feasibility request."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}}, "type": "object", "required": ["type", "geometry", "properties", "id", "links", "contract_id"], "title": "StoredFeasibilityRequest", "description": "Object representing a stored feasibility request."}, "StoredOrderResponse": {"properties": {"type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"oneOf": [{"$ref": "#/components/schemas/StoredStandardOrderRequestProperties"}, {"$ref": "#/components/schemas/StoredAssuredOrderRequestProperties"}], "title": "Properties", "description": "A map of additional metadata about the requested image."}, "id": {"type": "string", "format": "uuid", "title": "Id", "description": "Order ID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "A list of related links for the order."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "price": {"$ref": "#/components/schemas/Price", "description": "Pricing information."}, "series_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Series Id", "description": "ID of the recurring order series this order belongs to.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}}, "type": "object", "required": ["type", "geometry", "properties", "id", "links", "contract_id", "price"], "title": "StoredOrderResponse", "description": "Payload for stored order response."}, "StoredSeriesOrderParameters": {"properties": {"licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 25.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage where the lower limit is capped to 25%. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}}, "additionalProperties": false, "type": "object", "title": "StoredSeriesOrderParameters", "description": "Order parameters as stored on a series and returned in responses.\n\nExtends the request parameters with `product`, which is set server-side\n(always ``standard``) rather than provided by the requester."}, "StoredSeriesProperties": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Series UUID.", "examples": ["1ed44bb9-064e-4973-b15a-c5cc460d6677"]}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the series was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the series was last updated."}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Name", "description": "Optional human-readable label for this series."}, "owned_by": {"type": "string", "title": "Owned By", "description": "User who created the series."}, "contract_id": {"type": "string", "format": "uuid", "title": "Contract Id", "description": "Contract ID.", "examples": ["80736ba9-efad-46b0-9d24-9c4a96c85fa9"]}, "status": {"type": "string", "title": "Status", "description": "Series status."}, "frequency": {"type": "string", "title": "Frequency", "description": "ISO 8601 recurrence interval."}, "start_date": {"type": "string", "format": "date-time", "title": "Start Date", "description": "When the first order is scheduled."}, "total_order_count": {"type": "integer", "title": "Total Order Count", "description": "Total planned orders."}, "orders_created_count": {"type": "integer", "title": "Orders Created Count", "description": "Orders created so far."}, "next_window": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Next Window", "description": "Datetime interval of the next scheduled order window (ISO 8601 interval, e.g. '2026-06-01T00:00:00Z/2026-06-15T00:00:00Z'). Null when all orders have been created."}, "order_parameters": {"$ref": "#/components/schemas/StoredSeriesOrderParameters", "description": "Template for child orders."}, "reseller_end_user_id": {"anyOf": [{"type": "string", "format": "uuid"}, {"type": "null"}], "title": "Reseller End User Id", "description": "End user UUID for reseller series."}}, "type": "object", "required": ["id", "created_at", "updated_at", "owned_by", "contract_id", "status", "frequency", "start_date", "total_order_count", "orders_created_count", "order_parameters"], "title": "StoredSeriesProperties", "description": "Properties returned in a series response."}, "StoredSeriesResponse": {"properties": {"bbox": {"anyOf": [{"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 4, "minItems": 4, "items": {}}, {"prefixItems": [{"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}, {"type": "number"}], "type": "array", "maxItems": 6, "minItems": 6, "items": {}}, {"type": "null"}], "title": "Bbox"}, "type": {"type": "string", "const": "Feature", "title": "Type"}, "geometry": {"$ref": "#/components/schemas/Point", "description": "The location of interest defined as a point."}, "properties": {"$ref": "#/components/schemas/StoredSeriesProperties", "description": "A map of additional metadata about the requested image."}, "id": {"anyOf": [{"type": "integer"}, {"type": "number"}, {"type": "string"}, {"type": "null"}], "title": "Id"}}, "type": "object", "required": ["type", "geometry", "properties"], "title": "StoredSeriesResponse", "description": "Response body for a stored recurring tasking series."}, "StoredStandardOrderRequestProperties": {"properties": {"stac:item_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Stac:Item Id", "description": "The item id of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:datetime": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Stac:Datetime", "description": "The acquisition datetime of the STAC item that fulfilled the order, if the order has been fulfilled."}, "stac:metadata": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Stac:Metadata", "description": "STAC item metadata including presigned asset URLs for high-resolution imagery, if the order has been fulfilled and high-res assets are available."}, "licence_level": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Licence Level", "description": "The optional licence level for the order. Licence levels are specific to the contract. If not specified, the option will be set to the licence with the smallest uplift in the relevant contract.", "examples": ["My Licence"]}, "addon:withhold": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Addon:Withhold", "description": "The optional ISO8601 string describing the duration that an order will be withheld from the public catalog. Withhold options are specific to the contract. If not specified, the option will be set to the default specified in the relevant contract.", "examples": ["PT0H"]}, "name": {"anyOf": [{"type": "string", "maxLength": 255}, {"type": "null"}], "title": "Name", "description": "The name of the order.", "examples": ["My Order"]}, "satvu:day_night_mode": {"$ref": "#/components/schemas/DayNightMode", "description": "The mode of data capture.", "default": "day-night"}, "max_cloud_cover": {"type": "integer", "maximum": 100.0, "minimum": 0.0, "title": "Max Cloud Cover", "description": "The max threshold of acceptable cloud coverage. Measured in percent.", "default": 25}, "min_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Min Off Nadir", "description": "The minimum angle from the sensor between nadir and the scene center. Measured in decimal degrees.", "default": 0}, "max_off_nadir": {"type": "integer", "maximum": 45.0, "minimum": 0.0, "title": "Max Off Nadir", "description": "The maximum angle from the sensor between nadir and the scene center. Measured in decimal degrees. Must be larger than `min_off_nadir`.", "default": 30}, "product": {"type": "string", "const": "standard", "title": "Product", "description": "Standard Priority.", "default": "standard"}, "datetime": {"type": "string", "title": "Datetime", "description": "The closed date-time interval of the tasking order request.", "examples": ["2023-03-22T12:50:24+01:00/2023-03-23T12:50:24+01:00"]}, "status": {"$ref": "#/components/schemas/OrderStatus", "description": "The status of the order."}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "The datetime at which the order was created."}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "The datetime at which the order was last updated."}, "status_history": {"items": {"$ref": "#/components/schemas/StatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes for this order, newest first."}}, "type": "object", "required": ["datetime", "status", "created_at", "updated_at"], "title": "StoredStandardOrderRequestProperties", "description": "Feature properties model for standard priority stored order"}, "StructuredError": {"properties": {"code": {"type": "string", "title": "Code"}, "message": {"type": "string", "title": "Message"}, "details": {"additionalProperties": true, "type": "object", "title": "Details"}}, "type": "object", "required": ["code", "message", "details"], "title": "StructuredError", "description": "Machine-readable error body carrying a code, message, and context.\n\nUsed for validation failures where the frontend needs the specific values\n(requested vs. required) to render actionable feedback, rather than\nstring-parsing a free-text message."}, "StructuredErrorResponse": {"properties": {"error": {"$ref": "#/components/schemas/StructuredError"}}, "type": "object", "required": ["error"], "title": "StructuredErrorResponse", "description": "Response envelope wrapping a :class:`StructuredError`."}, "TaskAcquisition": {"properties": {"start_time": {"type": "string", "format": "date-time", "title": "Start Time", "description": "Start time of the acquisition window.", "examples": ["2026-04-11T12:00:00Z"]}, "end_time": {"type": "string", "format": "date-time", "title": "End Time", "description": "End time of the acquisition window.", "examples": ["2026-04-11T12:05:00Z"]}, "geometry": {"$ref": "#/components/schemas/Point", "description": "Target geometry as GeoJSON Point.", "examples": [{"coordinates": [51.5, -0.12], "type": "Point"}]}, "off_nadir": {"type": "number", "title": "Off Nadir", "description": "Off-nadir angle in degrees.", "examples": [25.5]}, "sun_el": {"type": "number", "title": "Sun El", "description": "Sun elevation angle in degrees.", "examples": [45.2]}, "sun_azimuth": {"type": "number", "title": "Sun Azimuth", "description": "Sun azimuth angle in degrees.", "examples": [306.15]}}, "type": "object", "required": ["start_time", "end_time", "geometry", "off_nadir", "sun_el", "sun_azimuth"], "title": "TaskAcquisition", "description": "Acquisition metadata for a task."}, "TaskResponse": {"properties": {"id": {"type": "string", "format": "uuid", "title": "Id", "description": "Task ID.", "examples": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]}, "status": {"$ref": "#/components/schemas/UserFacingTaskStatus", "description": "Current task status.", "examples": ["in progress"]}, "created_at": {"type": "string", "format": "date-time", "title": "Created At", "description": "When the task was created.", "examples": ["2026-04-11T09:00:00Z"]}, "updated_at": {"type": "string", "format": "date-time", "title": "Updated At", "description": "When the task was last updated.", "examples": ["2026-04-11T14:00:00Z"]}, "acquisition": {"anyOf": [{"$ref": "#/components/schemas/TaskAcquisition"}, {"type": "null"}], "description": "Acquisition metadata."}, "status_history": {"items": {"$ref": "#/components/schemas/TaskStatusHistoryEntry"}, "type": "array", "title": "Status History", "description": "Chronological history of status changes, newest first."}}, "type": "object", "required": ["id", "status", "created_at", "updated_at"], "title": "TaskResponse", "description": "A single task assigned to an order."}, "TaskStatusHistoryEntry": {"properties": {"status_from": {"anyOf": [{"$ref": "#/components/schemas/UserFacingTaskStatus"}, {"type": "null"}], "description": "Previous status before transition (null for initial assignment).", "examples": ["in progress"]}, "status_to": {"$ref": "#/components/schemas/UserFacingTaskStatus", "description": "New status after transition.", "examples": ["processing"]}, "datetime_updated": {"type": "string", "format": "date-time", "title": "Datetime Updated", "description": "When the status transition occurred.", "examples": ["2026-04-11T14:00:00Z"]}, "reason": {"type": "string", "title": "Reason", "description": "Reason for the status change.", "examples": ["Task processing"]}, "details": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Details", "description": "Additional context about the status change.", "examples": ["Cloud cover exceeded 50%"]}}, "type": "object", "required": ["status_to", "datetime_updated", "reason"], "title": "TaskStatusHistoryEntry", "description": "A single status transition in the task's lifecycle."}, "UserFacingTaskStatus": {"type": "string", "enum": ["in progress", "processing", "fulfilled", "not fulfilled", "failed"], "title": "UserFacingTaskStatus", "description": "User-facing task status values exposed via the API."}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}, "input": {"title": "Input"}, "ctx": {"type": "object", "title": "Context"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}, "ValidationErrorDetail": {"properties": {"type": {"type": "string", "title": "Type"}, "loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Loc"}, "msg": {"type": "string", "title": "Msg"}, "input": {"anyOf": [{}, {"type": "null"}], "title": "Input"}, "ctx": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Ctx"}}, "type": "object", "required": ["type", "loc", "msg"], "title": "ValidationErrorDetail", "description": "Individual validation error detail from Pydantic.\n\nRepresents a single validation error with location, message, and context."}, "ValidationErrorResponse": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationErrorDetail"}, "type": "array", "title": "Detail"}}, "type": "object", "required": ["detail"], "title": "ValidationErrorResponse", "description": "Validation error response for Pydantic validation failures.\n\nReturned by FastAPI when request validation fails (422 status).\nContains a list of validation errors with details about each failure."}, "otm__services__shared__schemas__base__Link": {"properties": {"href": {"type": "string", "minLength": 1, "format": "uri", "title": "Href", "description": "The link in the format of a URL."}, "rel": {"type": "string", "title": "Rel", "description": "The relationship between the current document and the linked document."}, "method": {"$ref": "#/components/schemas/RequestMethod", "description": "The HTTP method of the request.", "default": "GET"}, "body": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "title": "Body", "description": "A JSON object containing fields/values that must be included in the body of the next request."}, "merge": {"type": "boolean", "title": "Merge", "description": "If `true`, the headers/body fields in the `next` link must be merged into the original request and be sent combined in the next request.", "default": false}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Type", "description": "The media type of the referenced entity."}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title", "description": "Title of the link."}}, "type": "object", "required": ["href", "rel"], "title": "Link"}, "otm__services__shared__schemas__orders__ListStoredOrdersResponse": {"properties": {"type": {"type": "string", "const": "FeatureCollection", "title": "Type"}, "features": {"items": {"$ref": "#/components/schemas/StoredOrderResponse"}, "type": "array", "title": "Features", "description": "List of stored order requests."}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "Links to previous and/or next page."}, "context": {"$ref": "#/components/schemas/ResponseContext"}}, "type": "object", "required": ["type", "features", "links", "context"], "title": "ListStoredOrdersResponse", "description": "Payload for list stored orders response."}, "otm__services__shared__schemas__resellers__ListStoredOrdersResponse": {"properties": {"type": {"type": "string", "const": "FeatureCollection", "title": "Type"}, "features": {"items": {"anyOf": [{"$ref": "#/components/schemas/StoredOrderResponse"}, {"$ref": "#/components/schemas/ResellerStoredOrderResponse"}]}, "type": "array", "title": "Features", "description": "List of stored order requests."}, "links": {"items": {"$ref": "#/components/schemas/otm__services__shared__schemas__base__Link"}, "type": "array", "title": "Links", "description": "Links to previous and/or next page."}, "context": {"$ref": "#/components/schemas/ResponseContext"}}, "type": "object", "required": ["type", "features", "links", "context"], "title": "ListStoredOrdersResponse"}, "stac_tools__schemas__stac_base__Link": {"properties": {"href": {"type": "string", "minLength": 1, "format": "uri", "title": "Href", "description": "The URL to the linked resource."}, "rel": {"type": "string", "title": "Rel", "description": "The relationship type (e.g., 'self', 'root', 'parent', 'collection')."}, "type": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Type", "description": "The media type of the linked resource."}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Title", "description": "A human readable title to be used in rendered displays of the link."}}, "type": "object", "required": ["href", "rel"], "title": "Link", "description": "STAC Link object.\n\nLinks are used to express relationships between STAC objects\n(Items, Collections, Catalogs)."}}, "securitySchemes": {"SatVuAuth": {"type": "openIdConnect", "openIdConnectUrl": "https://auth.satellitevu.com/.well-known/openid-configuration"}}}}