Kayhan Space Mission Planning API

The Mission Planning API from Kayhan Space — 3 operation(s) for mission planning.

OpenAPI Specification

kayhan-space-mission-planning-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Satcat Service Authentication Mission Planning API
  description: '

    Kayhan Space''s Satcat Service API.


    ## Features

    * **View** historical CDM data for an object.

    * **View** latest CDM data for an object.

    '
  contact:
    email: help@kayhan.space
  version: 1.0.0
servers:
- url: /api/satcat
tags:
- name: Mission Planning
paths:
  /ground_observers:
    get:
      tags:
      - Mission Planning
      summary: List Ground Observers
      description: List saved ground observers for the request group.
      operationId: list_ground_observers_ground_observers_get
      security:
      - Oauth2Scheme: []
      parameters:
      - name: tags
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Only return saved ground observers containing all specified tags. Repeat this query parameter to pass multiple tags.
          title: Tags
        description: Only return saved ground observers containing all specified tags. Repeat this query parameter to pass multiple tags.
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Optional group ID to use for the request
          title: Group Id
        description: Optional group ID to use for the request
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
          title: Offset
      - name: count
        in: query
        required: false
        schema:
          type: integer
          default: 0
          title: Count
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OffsetPageResult_GroundObserverRead_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Mission Planning
      summary: Create Ground Observer
      description: Create a saved ground observer for the request group.
      operationId: create_ground_observer_ground_observers_post
      security:
      - Oauth2Scheme: []
      parameters:
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Optional group ID to use for the request
          title: Group Id
        description: Optional group ID to use for the request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroundObserverCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroundObserverRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /ground_observers/{sensor_id}:
    get:
      tags:
      - Mission Planning
      summary: Get Ground Observer
      description: Retrieve a saved ground observer for the request group.
      operationId: get_ground_observer_ground_observers__sensor_id__get
      security:
      - Oauth2Scheme: []
      parameters:
      - name: sensor_id
        in: path
        required: true
        schema:
          type: string
          title: Sensor Id
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Optional group ID to use for the request
          title: Group Id
        description: Optional group ID to use for the request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroundObserverRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Mission Planning
      summary: Update Ground Observer
      description: Update a saved ground observer for the request group.
      operationId: update_ground_observer_ground_observers__sensor_id__patch
      security:
      - Oauth2Scheme: []
      parameters:
      - name: sensor_id
        in: path
        required: true
        schema:
          type: string
          title: Sensor Id
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Optional group ID to use for the request
          title: Group Id
        description: Optional group ID to use for the request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroundObserverUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroundObserverRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Mission Planning
      summary: Delete Ground Observer
      description: Delete a saved ground observer for the request group.
      operationId: delete_ground_observer_ground_observers__sensor_id__delete
      security:
      - Oauth2Scheme: []
      parameters:
      - name: sensor_id
        in: path
        required: true
        schema:
          type: string
          title: Sensor Id
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Optional group ID to use for the request
          title: Group Id
        description: Optional group ID to use for the request
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /visibility_windows:
    post:
      tags:
      - Mission Planning
      summary: List Visibility Windows
      description: List predicted visibility windows given an input scenario.
      operationId: list_visibility_windows_visibility_windows_post
      security:
      - Oauth2Scheme: []
      parameters:
      - name: group_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Optional group ID to use for the request
          title: Group Id
        description: Optional group ID to use for the request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilityWindowsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibilityWindowsResult'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    GroundStationDefinition:
      properties:
        source_type:
          type: string
          const: GROUND_STATION
          title: Source Type
          default: GROUND_STATION
        latitude_deg:
          type: number
          title: Latitude Deg
        longitude_deg:
          type: number
          title: Longitude Deg
        altitude_m:
          type: number
          title: Altitude M
        min_elevation_deg:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Elevation Deg
      type: object
      required:
      - latitude_deg
      - longitude_deg
      - altitude_m
      title: GroundStationDefinition
    UDLGroundSensorDefinition:
      properties:
        source_type:
          type: string
          const: UDL_GROUND_SENSOR
          title: Source Type
          default: UDL_GROUND_SENSOR
        ground_sensor:
          $ref: '#/components/schemas/UDLGroundSensor'
      type: object
      required:
      - ground_sensor
      title: UDLGroundSensorDefinition
    VisibilityWindow:
      properties:
        aos_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Aos Time
        aos_el_deg:
          anyOf:
          - type: number
          - type: 'null'
          title: Aos El Deg
        los_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Los Time
        los_el_deg:
          anyOf:
          - type: number
          - type: 'null'
          title: Los El Deg
        max_el_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Max El Time
        max_el_deg:
          anyOf:
          - type: number
          - type: 'null'
          title: Max El Deg
        observer_id:
          type: string
          title: Observer Id
        duration_s:
          anyOf:
          - type: number
          - type: 'null'
          title: Duration S
          readOnly: true
      type: object
      required:
      - observer_id
      - duration_s
      title: VisibilityWindow
    GroundObserverRead:
      properties:
        sensor_id:
          type: string
          title: Sensor Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        tags:
          items:
            type: string
          type: array
          minItems: 1
          title: Tags
        definition:
          oneOf:
          - $ref: '#/components/schemas/UDLGroundSensorDefinition'
          - $ref: '#/components/schemas/GroundStationDefinition'
          title: Definition
          description: Observer definition.
          discriminator:
            propertyName: source_type
            mapping:
              GROUND_STATION: '#/components/schemas/GroundStationDefinition'
              UDL_GROUND_SENSOR: '#/components/schemas/UDLGroundSensorDefinition'
        id:
          type: string
          format: uuid
          title: Id
        group_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Group Id
        public:
          type: boolean
          title: Public
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - sensor_id
      - tags
      - definition
      - id
      - group_id
      - public
      - created_at
      - updated_at
      title: GroundObserverRead
    UDLGroundSensorLocation:
      properties:
        lat:
          type: number
          title: Lat
        lon:
          type: number
          title: Lon
        altitude:
          type: number
          title: Altitude
      type: object
      required:
      - lat
      - lon
      - altitude
      title: UDLGroundSensorLocation
    OffsetPagination:
      properties:
        offset:
          type: integer
          title: Offset
          description: Offset in the collection to begin the page.
          default: 0
        count:
          type: integer
          title: Count
          description: Number of items to retrieve. 0 returns all items.
          default: 0
      type: object
      title: OffsetPagination
    UDLSensorAzElLimit:
      properties:
        upperLeftAzimuthLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Upperleftazimuthlimit
        upperRightAzimuthLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Upperrightazimuthlimit
        lowerLeftAzimuthLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Lowerleftazimuthlimit
        lowerRightAzimuthLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Lowerrightazimuthlimit
        upperLeftElevationLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Upperleftelevationlimit
        upperRightElevationLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Upperrightelevationlimit
        lowerLeftElevationLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Lowerleftelevationlimit
        lowerRightElevationLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Lowerrightelevationlimit
      type: object
      title: UDLSensorAzElLimit
    VisibilityRequestTLEDataSource:
      properties:
        source_type:
          type: string
          const: TLE
          title: Source Type
          default: TLE
        line1:
          type: string
          title: Line1
        line2:
          type: string
          title: Line2
        propagation_start_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Propagation Start Time
        propagation_stop_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Propagation Stop Time
      type: object
      required:
      - line1
      - line2
      title: VisibilityRequestTLEDataSource
    VisibilityRequestEphemerisDataSource:
      properties:
        source_type:
          type: string
          const: EPHEMERIS
          title: Source Type
          default: EPHEMERIS
        ephemeris_id:
          type: string
          title: Ephemeris Id
      type: object
      required:
      - ephemeris_id
      title: VisibilityRequestEphemerisDataSource
    SavedObserverSearchDefinition:
      properties:
        source_type:
          type: string
          const: SAVED_OBSERVER_SEARCH
          title: Source Type
          default: SAVED_OBSERVER_SEARCH
        owner:
          type: string
          enum:
          - group
          - public
          title: Owner
          default: group
        tags:
          items:
            type: string
          type: array
          minItems: 1
          title: Tags
      type: object
      required:
      - tags
      title: SavedObserverSearchDefinition
    GroundObserverCreate:
      properties:
        sensor_id:
          type: string
          title: Sensor Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        tags:
          items:
            type: string
          type: array
          minItems: 1
          title: Tags
        definition:
          oneOf:
          - $ref: '#/components/schemas/UDLGroundSensorDefinition'
          - $ref: '#/components/schemas/GroundStationDefinition'
          title: Definition
          description: Observer definition.
          discriminator:
            propertyName: source_type
            mapping:
              GROUND_STATION: '#/components/schemas/GroundStationDefinition'
              UDL_GROUND_SENSOR: '#/components/schemas/UDLGroundSensorDefinition'
      type: object
      required:
      - sensor_id
      - tags
      - definition
      title: GroundObserverCreate
    OffsetPageResult_GroundObserverRead_:
      properties:
        pagination:
          $ref: '#/components/schemas/OffsetPagination'
        items:
          items:
            $ref: '#/components/schemas/GroundObserverRead'
          type: array
          title: Items
        total_count:
          type: integer
          title: Total Count
      type: object
      required:
      - pagination
      - items
      - total_count
      title: OffsetPageResult[GroundObserverRead]
    VisibilityWindowsResult:
      properties:
        windows:
          items:
            $ref: '#/components/schemas/VisibilityWindow'
          type: array
          title: Windows
      type: object
      required:
      - windows
      title: VisibilityWindowsResult
    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
    UDLSensorCharacteristic:
      properties:
        minRangeLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Minrangelimit
        maxRangeLimit:
          anyOf:
          - type: number
          - type: 'null'
          title: Maxrangelimit
        maxSunElevationAngle:
          anyOf:
          - type: number
          - type: 'null'
          title: Maxsunelevationangle
      type: object
      title: UDLSensorCharacteristic
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    UDLGroundSensor:
      properties:
        sensorName:
          type: string
          title: Sensorname
        idSensor:
          type: string
          title: Idsensor
        source:
          type: string
          title: Source
        classificationMarking:
          type: string
          title: Classificationmarking
        entity:
          $ref: '#/components/schemas/UDLGroundSensorEntity'
        sensorcharacteristics:
          anyOf:
          - items:
              $ref: '#/components/schemas/UDLSensorCharacteristic'
            type: array
          - type: 'null'
          title: Sensorcharacteristics
        sensorlimitsCollection:
          anyOf:
          - items:
              $ref: '#/components/schemas/UDLSensorAzElLimit'
            type: array
          - type: 'null'
          title: Sensorlimitscollection
      type: object
      required:
      - sensorName
      - idSensor
      - source
      - classificationMarking
      - entity
      - sensorcharacteristics
      - sensorlimitsCollection
      title: UDLGroundSensor
      description: 'Compatible with the UDL GroundSensor model.

        Can be used for both ground stations and ground sensors such as radar / EO.'
    GroundObserverUpdate:
      properties:
        sensor_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Sensor Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        tags:
          anyOf:
          - items:
              type: string
            type: array
            minItems: 1
          - type: 'null'
          title: Tags
        definition:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/UDLGroundSensorDefinition'
            - $ref: '#/components/schemas/GroundStationDefinition'
            description: Observer definition.
            discriminator:
              propertyName: source_type
              mapping:
                GROUND_STATION: '#/components/schemas/GroundStationDefinition'
                UDL_GROUND_SENSOR: '#/components/schemas/UDLGroundSensorDefinition'
          - type: 'null'
          title: Definition
      type: object
      title: GroundObserverUpdate
    VisibilityWindowsRequest:
      properties:
        primary_rso_data_source:
          oneOf:
          - $ref: '#/components/schemas/VisibilityRequestTLEDataSource'
          - $ref: '#/components/schemas/VisibilityRequestEphemerisDataSource'
          title: Primary Rso Data Source
          description: Data source for the RSO state.
          discriminator:
            propertyName: source_type
            mapping:
              EPHEMERIS: '#/components/schemas/VisibilityRequestEphemerisDataSource'
              TLE: '#/components/schemas/VisibilityRequestTLEDataSource'
        observers:
          items:
            $ref: '#/components/schemas/VisibilityRequestObserver'
          type: array
          title: Observers
      type: object
      required:
      - primary_rso_data_source
      - observers
      title: VisibilityWindowsRequest
    VisibilityRequestObserver:
      properties:
        id:
          type: string
          title: Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        definition:
          oneOf:
          - $ref: '#/components/schemas/UDLGroundSensorDefinition'
          - $ref: '#/components/schemas/GroundStationDefinition'
          - $ref: '#/components/schemas/SavedObserverSearchDefinition'
          title: Definition
          description: Observer definition.
          discriminator:
            propertyName: source_type
            mapping:
              GROUND_STATION: '#/components/schemas/GroundStationDefinition'
              SAVED_OBSERVER_SEARCH: '#/components/schemas/SavedObserverSearchDefinition'
              UDL_GROUND_SENSOR: '#/components/schemas/UDLGroundSensorDefinition'
      type: object
      required:
      - id
      - definition
      title: VisibilityRequestObserver
    UDLGroundSensorEntity:
      properties:
        location:
          $ref: '#/components/schemas/UDLGroundSensorLocation'
      type: object
      required:
      - location
      title: UDLGroundSensorEntity
  securitySchemes:
    Oauth2Scheme:
      type: oauth2
      flows:
        password:
          scopes:
            internal: Access from an internal API.
          tokenUrl: login
        clientCredentials:
          scopes:
            internal: Access from an internal API.
          tokenUrl: oauth/token