Kayhan Space Mission Planning API
The Mission Planning API from Kayhan Space — 3 operation(s) for mission planning.
The Mission Planning API from Kayhan Space — 3 operation(s) for mission planning.
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