Citra Space Scenarios API

The scenarios API from Citra Space — 19 operation(s) for scenarios.

Operations 22

GET /scenario-runs/{run_id} Get scenario run scenario runs run id get #
POST /scenario-runs/{run_id}/archive Archive scenario run scenario runs run id archive post #
POST /scenario-runs/{run_id}/arm Arm scenario run scenario runs run id arm post #
GET /scenario-runs/{run_id}/launch-console/chunks/{chunk_id} Scenario run chunk scenario runs run id launch console chunks chunk id get #
GET /scenario-runs/{run_id}/launch-console/manifest Scenario run manifest scenario runs run id launch console manifest get #
GET /scenario-runs/{run_id}/launch-console/window Scenario run window scenario runs run id launch console window get #
POST /scenario-runs/{run_id}/pause Pause scenario run scenario runs run id pause post #
POST /scenario-runs/{run_id}/promotions Promote scenario run scenario runs run id promotions post #
POST /scenario-runs/{run_id}/purge Purge scenario run scenario runs run id purge post #
GET /scenario-runs/{run_id}/scoring Scenario run scoring scenario runs run id scoring get #
POST /scenario-runs/{run_id}/scoring/recompute Recompute scenario run scoring scenario runs run id scoring recompute post #
POST /scenario-runs/{run_id}/start Start scenario run scenario runs run id start post #
GET /scenario-runs/{run_id}/status Scenario run status scenario runs run id status get #
POST /scenario-runs/{run_id}/stop Stop scenario run scenario runs run id stop post #
GET /scenarios List scenarios scenarios get #
POST /scenarios Create scenario scenarios post #
GET /scenarios/{scenario_id} Get scenario scenarios scenario id get #
PATCH /scenarios/{scenario_id} Update scenario scenarios scenario id patch #
POST /scenarios/{scenario_id}/archive Archive scenario scenarios scenario id archive post #
POST /scenarios/{scenario_id}/duplicate Duplicate scenario scenarios scenario id duplicate post #
GET /scenarios/{scenario_id}/runs List scenario runs scenarios scenario id runs get #
POST /scenarios/{scenario_id}/runs Create scenario run scenarios scenario id runs post #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/citra-space:citra-space-scenarios-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

citra-space-scenarios-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SOICAT Scenarios API
  version: 0.1.0
tags:
- name: Scenarios
paths:
  /scenario-runs/{run_id}:
    get:
      operationId: get_scenario_run_scenario_runs__run_id__get
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Get scenario run scenario runs run id get
      x-summary-source: derived
  /scenario-runs/{run_id}/archive:
    post:
      operationId: archive_scenario_run_scenario_runs__run_id__archive_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Archive scenario run scenario runs run id archive post
      x-summary-source: derived
  /scenario-runs/{run_id}/arm:
    post:
      operationId: arm_scenario_run_scenario_runs__run_id__arm_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Arm scenario run scenario runs run id arm post
      x-summary-source: derived
  /scenario-runs/{run_id}/launch-console/chunks/{chunk_id}:
    get:
      operationId: scenario_run_chunk_scenario_runs__run_id__launch_console_chunks__chunk_id__get
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      - in: path
        name: chunk_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Scenario run chunk scenario runs run id launch console chunks chunk id get
      x-summary-source: derived
  /scenario-runs/{run_id}/launch-console/manifest:
    get:
      operationId: scenario_run_manifest_scenario_runs__run_id__launch_console_manifest_get
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: {}
                propertyNames:
                  type: string
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Scenario run manifest scenario runs run id launch console manifest get
      x-summary-source: derived
  /scenario-runs/{run_id}/launch-console/window:
    get:
      operationId: scenario_run_window_scenario_runs__run_id__launch_console_window_get
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      - in: query
        name: from
        required: true
        schema:
          format: double
          minimum: 0
          type: number
      - in: query
        name: to
        required: true
        schema:
          exclusiveMinimum: 0
          format: double
          type: number
      - in: query
        name: resolution
        required: false
        schema:
          exclusiveMinimum: 0
          format: double
          type:
          - number
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: {}
                propertyNames:
                  type: string
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Scenario run window scenario runs run id launch console window get
      x-summary-source: derived
  /scenario-runs/{run_id}/pause:
    post:
      operationId: pause_scenario_run_scenario_runs__run_id__pause_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Pause scenario run scenario runs run id pause post
      x-summary-source: derived
  /scenario-runs/{run_id}/promotions:
    post:
      operationId: promote_scenario_run_scenario_runs__run_id__promotions_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScenarioPromotionCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Promote scenario run scenario runs run id promotions post
      x-summary-source: derived
  /scenario-runs/{run_id}/purge:
    post:
      operationId: purge_scenario_run_scenario_runs__run_id__purge_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioControlAccepted'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Purge scenario run scenario runs run id purge post
      x-summary-source: derived
  /scenario-runs/{run_id}/scoring:
    get:
      operationId: scenario_run_scoring_scenario_runs__run_id__scoring_get
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: {}
                propertyNames:
                  type: string
                type: object
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Scenario run scoring scenario runs run id scoring get
      x-summary-source: derived
  /scenario-runs/{run_id}/scoring/recompute:
    post:
      operationId: recompute_scenario_run_scoring_scenario_runs__run_id__scoring_recompute_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioControlAccepted'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Recompute scenario run scoring scenario runs run id scoring recompute post
      x-summary-source: derived
  /scenario-runs/{run_id}/start:
    post:
      operationId: start_scenario_run_scenario_runs__run_id__start_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Start scenario run scenario runs run id start post
      x-summary-source: derived
  /scenario-runs/{run_id}/status:
    get:
      operationId: scenario_run_status_scenario_runs__run_id__status_get
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioStatus'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Scenario run status scenario runs run id status get
      x-summary-source: derived
  /scenario-runs/{run_id}/stop:
    post:
      operationId: stop_scenario_run_scenario_runs__run_id__stop_post
      parameters:
      - in: path
        name: run_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Stop scenario run scenario runs run id stop post
      x-summary-source: derived
  /scenarios:
    get:
      operationId: list_scenarios_scenarios_get
      parameters:
      - in: query
        name: include_archived
        required: false
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ScenarioRead'
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: List scenarios scenarios get
      x-summary-source: derived
    post:
      operationId: create_scenario_scenarios_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScenarioCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Create scenario scenarios post
      x-summary-source: derived
  /scenarios/{scenario_id}:
    get:
      operationId: get_scenario_scenarios__scenario_id__get
      parameters:
      - in: path
        name: scenario_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Get scenario scenarios scenario id get
      x-summary-source: derived
    patch:
      operationId: update_scenario_scenarios__scenario_id__patch
      parameters:
      - in: path
        name: scenario_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScenarioUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Update scenario scenarios scenario id patch
      x-summary-source: derived
  /scenarios/{scenario_id}/archive:
    post:
      operationId: archive_scenario_scenarios__scenario_id__archive_post
      parameters:
      - in: path
        name: scenario_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Archive scenario scenarios scenario id archive post
      x-summary-source: derived
  /scenarios/{scenario_id}/duplicate:
    post:
      operationId: duplicate_scenario_scenarios__scenario_id__duplicate_post
      parameters:
      - in: path
        name: scenario_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Duplicate scenario scenarios scenario id duplicate post
      x-summary-source: derived
  /scenarios/{scenario_id}/runs:
    get:
      operationId: list_scenario_runs_scenarios__scenario_id__runs_get
      parameters:
      - in: path
        name: scenario_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ScenarioRunRead'
                type: array
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: List scenario runs scenarios scenario id runs get
      x-summary-source: derived
    post:
      operationId: create_scenario_run_scenarios__scenario_id__runs_post
      parameters:
      - in: path
        name: scenario_id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScenarioRunCreate'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScenarioRunRead'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      tags:
      - Scenarios
      summary: Create scenario run scenarios scenario id runs post
      x-summary-source: derived
components:
  schemas:
    ScenarioKind:
      enum:
      - launch
      type: string
    LaunchSeparation:
      properties:
        childName:
          default: upper-stage
          type: string
        deltaVMps:
          items:
            format: double
            type: number
          type: array
        parentName:
          default: payload
          type: string
        t0OffsetSeconds:
          format: double
          type: number
      required:
      - t0OffsetSeconds
      type: object
    ScenarioRunCreate:
      properties:
        expectedScenarioRevision:
          format: int32
          type: integer
        logicalStart:
          format: date-time
          type: string
        mode:
          default: quick
          oneOf:
          - $ref: '#/components/schemas/ScenarioRunMode'
        seed:
          format: int64
          type: integer
      required:
      - expectedScenarioRevision
      - logicalStart
      - seed
      type: object
    ScenarioPromotionCreate:
      properties:
        logicalStart:
          format: date-time
          type:
          - string
          - 'null'
      type: object
    ScenarioCreate:
      properties:
        definition:
          $ref: '#/components/schemas/LaunchScenarioDefinition'
        description:
          type:
          - string
          - 'null'
        name:
          maxLength: 255
          minLength: 1
          type: string
      required:
      - name
      - definition
      type: object
    LaunchWarning:
      properties:
        confidence:
          default: 1.0
          format: double
          maximum: 1
          minimum: 0
          type: number
        payload:
          additionalProperties: {}
          propertyNames:
            type: string
          type: object
        source:
          default: scenario
          pattern: ^[a-z0-9_-]+$
          type: string
        t0OffsetSeconds:
          format: double
          type: number
      type: object
    ValidationError:
      properties:
        ctx:
          type: object
        input: {}
        loc:
          items:
            oneOf:
            - type: string
            - format: int64
              type: integer
          type: array
        msg:
          type: string
        type:
          type: string
      required:
      - loc
      - msg
      - type
      type: object
    ScenarioRead:
      properties:
        archivedAt:
          format: date-time
          type:
          - string
          - 'null'
        createdAt:
          format: date-time
          type: string
        createdBy:
          format: uuid
          type: string
        definition:
          $ref: '#/components/schemas/LaunchScenarioReadDefinition'
        description:
          type:
          - string
          - 'null'
        id:
          format: uuid
          type: string
        kind:
          $ref: '#/components/schemas/ScenarioKind'
        name:
          type: string
        revision:
          format: int32
          type: integer
        updatedAt:
          format: date-time
          type: string
        updatedBy:
          format: uuid
          type: string
      required:
      - id
      - kind
      - name
      - definition
      - revision
      - createdBy
      - updatedBy
      - createdAt
      - updatedAt
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
      type: object
    ScenarioUpdate:
      description: OpenAPI shape for the presence-aware PATCH parser in the handler.
      properties:
        definition:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/LaunchScenarioDefinition'
        description:
          type:
          - string
          - 'null'
        expectedRevision:
          format: int32
          minimum: 1
          type: integer
        name:
          maxLength: 255
          minLength: 1
          type:
          - string
          - 'null'
      required:
      - expectedRevision
      type: object
    ScenarioStatus:
      properties:
        alertCount:
          format: int64
          type: integer
        error:
          type:
          - string
          - 'null'
        id:
          format: uuid
          type: string
        observationCount:
          format: int64
          type: integer
        state:
          $ref: '#/components/schemas/ScenarioState'
        taskCount:
          format: int64
          type: integer
        updatedAt:
          format: date-time
          type: string
        warningCounts:
          additionalProperties:
            format: int64
            type: integer
          propertyNames:
            type: string
          type: object
      required:
      - id
      - state
      - updatedAt
      - warningCounts
      - observationCount
      - taskCount
      - alertCount
      type: object
    LaunchScenarioReadDefinition:
      description: Schema-only read contract for legacy launch-family compatibility.
      properties:
        ambientObservationIntervalSeconds:
          default: 30.0
          format: double
          minimum: 0.1
          type: number
        assessmentConfig:
          type: object
        durationSeconds:
          exclusiveMinimum: 0
          format: double
          maximum: 604800
          type: number
        kind:
          default: launch
          oneOf:
          - $ref: '#/components/schemas/ScenarioKind'
        maneuvers:
          items:
            $ref: '#/components/schemas/LaunchManeuver'
          maxItems: 4096
          type: array
        missionId:
          format: uuid
          type:
          - string
          - 'null'
        noiseConfig:
          type: object
        operatorPolicy:
          type: object
        protectedSatelliteGroupIds:
          items:
            format: uuid
            type: string
          maxItems: 31
          type: array
        scenarioType:
          default: new_launch_into_suspected_orbit
          oneOf:
          - enum:
            - new_launch_into_suspected_orbit
            - co_orbital_intercept
            - high_velocity_intercept
            type: string
        schedulingConfig:
          type: object
        sensors:
          items:
            $ref: '#/components/schemas/ScenarioSensorDefinition'
          maxItems: 8
          type: array
        separations:
          items:
            $ref: '#/components/schemas/LaunchSeparation'
          maxItems: 2
          type: array
        truthParameters:
          type: object
        warnings:
          items:
            $ref: '#/components/schemas/LaunchWarning'
          maxItems: 1024
          type: array
      required:
      - durationSeconds
      type: object
    LaunchScenarioDefinition:
      properties:
        ambientObservationIntervalSeconds:
          default: 30.0
          format: double
          minimum: 0.1
          type: number
        assessmentConfig:
          type: object
        durationSeconds:
          exclusiveMinimum: 0
          format: double
          maximum: 604800
          type: number
        kind:
          default: launch
          oneOf:
          - $ref: '#/components/schemas/ScenarioKind'
        maneuvers:
          items:
            $ref: '#/components/schemas/LaunchManeuver'
          maxItems: 4096
          type: array
        missionId:
          format: uuid
          type:
          - string
          - 'null'
        noiseConfig:
          type: object
        operatorPolicy:
          type: object
        protectedSatelliteGroupIds:
          items:
            format: uuid
            type: string
          maxItems: 31
          type: array
        scenarioType:
          default: new_launch_into_suspected_orbit
          oneOf:
          - enum:
            - new_launch_into_suspected_orbit
            type: string
        schedulingConfig:
          type: object
        sensors:
          items:
            $ref: '#/components/schemas/ScenarioSensorDefinition'
          maxItems: 8
          type: array
        separations:
          items:
            $ref: '#/components/schemas/LaunchSeparation'
          maxItems: 2
          type: array
        truthParameters:
          type: object
        warnings:
          items:
            $ref: '#/components/schemas/LaunchWarning'
          maxItems: 1024
          type: array
      required:
      - durationSeconds
      type: object
    SensorType:
      enum:
      - telescope
      - antenna
      title: SensorType
      type: string
    ScenarioControlAccepted:
      properties:
        id:
          format: uuid
          type: string
        requestedAction:
          type: string
        state:
          $ref: '#/components/schemas/ScenarioState'
      required:
      - id
      - state
      - requestedAction
      type: object
    ScenarioSensorDefinition:
      properties:
        activeFromT0Seconds:
          format: double
          type: number
        activeUntilT0Seconds:
          format: double
          type:
          - number
          - 'null'
        altitudeKm:
          default: 0
          format: double
          minimum: -1
          type: number
        edgeSensorId:
          format: uuid
          type: string
        groundStationId:
          format: uuid
          type:
          - string
          - 'null'
        latitude:
          default: 0
          format: double
          maximum: 90
          minimum: -90
          type: number
        longitude:
          default: 0
          format: double
          maximum: 180
          minimum: -180
          type: number
        minElevationDegrees:
          default: 0
          format: double
          maximum: 90
          minimum: 0
          type: number
        minimumRangeKm:
          default: 0
          format: double
          minimum: 0
          type: number
        name:
          default: Scenario sensor
          type: string
        observationIntervalSeconds:
          default: 30.0
          format: double
          minimum: 0.1
          type: number
        probabilityDetection:
          default: 1.0
          format: double
          maximum: 1
          minimum: 0
          type: number
        requireSiteDark:
          type: boolean
        requireTargetSunlit:
          type: boolean
        sensorId:
          format: uuid
          type: string
        sensorType:
          $ref: '#/components/schemas/SensorType'
      required:
      - sensorId
      - sensorType
      - edgeSensorId
      type: object
    LaunchManeuver:
      properties:
        deltaVMps:
          items:
            format: double
            type: number
          type: array
        objectName:
          type: string
        t0OffsetSeconds:
          format: double
          type: number
      required:
      - objectName
      - t0OffsetSeconds
      - deltaVMps
      type: object
    ScenarioRunRead:
      properties:
        armedAt:
          format: date-time
          type:
          - string
          - 'null'
        artifactHash:
          type:
          - string
          - 'null'
        completedAt:
          format: date-time
          type:
          - string
          - 'null'
        createdAt:
          format: date-time
          type: string
        createdBy:
          format: uuid
          type: string
        failureReason:
          type:
          - string
          - 'null'
        id:
          format: uuid
          type: string
        inputHash:
          type: string
        inputSnapshot: {}
        logicalStart:
          format: date-time
          type: string
        mode:
          $ref: '#/components/schemas/ScenarioRunMode'
        progress: {}
        promotedFromRunId:
          format: uuid
          type:
          - string
          - 'null'
        purgedAt:
          format: date-time
          type:
          - string
          - 'null'
        replayManifest: {}
        scenarioId:
          format: uuid
          type: string
        scenarioRevision:
          format: int32
          type: integer
        scoring: {}
        seed:
          format: int64
          type: integer
        startedAt:
          format: date-time
          type:
          - string
          - 'null'
        state:
          $ref: '#/components/schemas/ScenarioState'
        updatedAt:
          format: date-time
          type: string
        versionManifest: {}
      required:
      - id
      - scenarioId
      - scenarioRevision
      - mode
      - state
      - logicalStart
      - seed
      - inputHash
      - inputSnapshot
      - versionManifest
      - progress
      - createdBy
      - createdAt
      - updatedAt
      type: object
    ScenarioRunMode:
      enum:
      - quick
      - full_system
      type: string
    ScenarioState:
      enum:
      - queued
      - compiling
      - draft
      - arming
      - armed
      - running
      - paused
      - completed
      - archived
      - failed
      type: string
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http