Skip to content

Observation API

The Observation API covers everything observation-shaped: observations themselves, observation requests, observation tasks, and targets. It's the API you'll spend the most time in if you're automating data acquisition.

Endpoints at a glance

This page embeds the auto-generated OpenAPI reference (below) which is the authoritative source. The narrative here covers what isn't obvious from the spec.

Resource What it is
/v1/observations Observations — the top-level container. See Observation schema
/v1/observation-requests Per-observation data requests (imaging, radio, calibrations). Polymorphic on requestType
/v1/observation-tasks Per-task execution records the scheduler creates from requests
/v1/targets Celestial targets — fixed, catalog, ephemeral, orbital positions

Creating and changing observations

An observation is created in one POST /v1/users/{slug}/observations (or /v1/organizations/{slug}/observations) from a complete ObservationCreate — target, imaging configuration, requests, and funding grants all in one body. There is no draft-then-publish step: the observation is created active and visible to the scheduler immediately. See Creating observations for the full walkthrough.

Lifecycle changes after creation:

Operation How
Cancel PATCH /v1/observations/{id} with { "status": "canceled" } — drops pending tasks
Hide (soft-delete) PATCH /v1/observations/{id} with { "isDeleted": true }
Delete DELETE /v1/observations/{id} — refused once the observation has generated tasks (cancel instead)
Re-author from a spec POST /v1/observations/{id}/apply-spec with an ObservationSpec
Replace the target POST /v1/observations/{id}/target

Common pitfalls

  • Polymorphic discrimination. Every request and task carries a requestType / taskType. When you create a request, the body shape depends on the discriminator. See Conventions → Polymorphic resources.
  • Targets are nested. A target attaches to an observation — set it in the create body (target), or afterward with POST /v1/observations/{id}/target. /v1/targets is read-mostly.
  • One POST, no drafts. An observation is created complete and active from a single ObservationCreate; there's no draft/instance distinction and no publish step. Two rules cause most 4xx: send camelCase field names, and set exactly one exposure-sizing field per request (exposureTimeSec / targetSnr / targetFullWellFraction). See Creating observations.
  • Quota mechanics. Submitting an observation costs nothing. Credits are tallied against the funding account and grant as tasks dispatch (ObservingAccountTxn records). Throttling is driven by quotas attached to accounts and grants — each quota is a (period_type, max_credits) rule; period types are lifetime, day, week, month, or night. Multiple quotas can attach to the same account / grant and all must be satisfied; dispatch pauses when any one would be exceeded. Quota-exceeded observations stall rather than error, and resume as quota frees up. See Observing accounts → Quotas.

Common task recipes

The curl quickstart walks the most common flow (find a grant + imager → POST the observation → poll), and Creating observations covers catalog/non-sidereal targets and asset download.

Other recipes worth knowing:

  • Submit from an existing project template — use POST /v1/project-templates/{uid}/instantiate instead of building the spec by hand. See Project templates.
  • Bulk submission — submit observations one at a time today; there's no bulk endpoint. Wrap the per-observation calls with your own retry logic.
  • Watch for completion — poll GET /v1/observations/{id} for status: completed, or subscribe to the telescope_log and device_snapshot streams via WebSocket for finer-grained progress.

Reference

Observation API 2.0.0

Endpoints for managing observations, observation requests, tasks and related resources.


Data Requests


GET /observation-requests

Read Requests

Description

Retrieve a page of observation requests.

Scoped to requests whose parent observation the caller may view (IDOR guard — HI-7). We resolve the set of viewable observation ids up front from the observations visibility filter (the single source of truth) and constrain the request query to them, so an unauthenticated / unauthorized caller can never page another tenant's requests.

Input parameters

Parameter In Type Default Nullable Description
filter_observation_id query No
filterObservationId query No
id query No
is_deleted query No
isDeleted query No
sort_by query No
sortBy query No
status query No
token query No

Responses

{
    "items": [
        null
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "discriminator": {
                    "mapping": {
                        "optical_imaging": "#/components/schemas/OpticalImagingRequestSummary",
                        "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestSummary",
                        "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestSummary",
                        "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestSummary",
                        "radio_mapping": "#/components/schemas/RadioMappingRequestSummary",
                        "radio_tracking": "#/components/schemas/RadioTrackingRequestSummary"
                    },
                    "propertyName": "requestType"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/OpticalImagingRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/RadioTrackingRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/RadioMappingRequestSummary"
                    }
                ]
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[Annotated[Union[OpticalImagingRequestSummary, OpticalImagingBiasCalibrationRequestSummary, OpticalImagingDarkCalibrationRequestSummary, OpticalImagingFlatCalibrationRequestSummary, RadioTrackingRequestSummary, RadioMappingRequestSummary], FieldInfo(annotation=NoneType, required=True, discriminator='request_type')]]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observation-requests

Create Request

Description

Create a new observation request.

The caller must hold modify_observation on the parent observation the request is being attached to (IDOR guard — HI-7); otherwise anyone could inject requests into another tenant's observation.

Input parameters

Parameter In Type Default Nullable Description
token query No

Request body

Schema of the request body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequestCreate",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestCreate",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestCreate",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestCreate",
            "radio_mapping": "#/components/schemas/RadioMappingRequestCreate",
            "radio_tracking": "#/components/schemas/RadioTrackingRequestCreate"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequestCreate"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestCreate"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestCreate"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestCreate"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequestCreate"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequestCreate"
        }
    ],
    "title": "Body"
}

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequestDetail",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail",
            "radio_mapping": "#/components/schemas/RadioMappingRequestDetail",
            "radio_tracking": "#/components/schemas/RadioTrackingRequestDetail"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequestDetail"
        }
    ],
    "title": "Response Create Request Observation Requests Post"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

DELETE /observation-requests/{request_id}

Delete Request

Description

Remove an observation request from the system.

Requires modify_observation on the parent observation (IDOR guard — HI-7).

Input parameters

Parameter In Type Default Nullable Description
request_id path integer No
token query No

Responses

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observation-requests/{request_id}

Read Request

Description

Retrieve a specific observation request.

Requires view_observation on the parent observation (IDOR guard — HI-7).

Input parameters

Parameter In Type Default Nullable Description
request_id path integer No
token query No

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequest",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequest",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequest",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequest",
            "radio_mapping": "#/components/schemas/RadioMappingRequest",
            "radio_tracking": "#/components/schemas/RadioTrackingRequest"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequest"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequest"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequest"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequest"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequest"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequest"
        }
    ],
    "title": "Response Read Request Observation Requests  Request Id  Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PATCH /observation-requests/{request_id}

Update Request

Description

Modify an existing observation request.

Requires modify_observation on the parent observation (IDOR guard — HI-7).

Input parameters

Parameter In Type Default Nullable Description
request_id path integer No
token query No

Request body

Schema of the request body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequestUpdate",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestUpdate",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestUpdate",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestUpdate",
            "radio_mapping": "#/components/schemas/RadioMappingRequestUpdate",
            "radio_tracking": "#/components/schemas/RadioTrackingRequestUpdate"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequestUpdate"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestUpdate"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestUpdate"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestUpdate"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequestUpdate"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequestUpdate"
        }
    ],
    "title": "Body"
}

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequestDetail",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail",
            "radio_mapping": "#/components/schemas/RadioMappingRequestDetail",
            "radio_tracking": "#/components/schemas/RadioTrackingRequestDetail"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequestDetail"
        }
    ],
    "title": "Response Update Request Observation Requests  Request Id  Patch"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observation-requests/{request_id}/detail

Read Request Detail

Description

Retrieve a detailed observation request.

Input parameters

Parameter In Type Default Nullable Description
request_id path integer No
token query No

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequestDetail",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail",
            "radio_mapping": "#/components/schemas/RadioMappingRequestDetail",
            "radio_tracking": "#/components/schemas/RadioTrackingRequestDetail"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequestDetail"
        }
    ],
    "title": "Response Read Request Detail Observation Requests  Request Id  Detail Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

Observation Tasks


GET /observation-tasks

Read Tasks

Input parameters

Parameter In Type Default Nullable Description
binning query No
completed_after query No
completed_before query No
completedAfter query No
completedBefore query No
earliest_start_after query No
earliest_start_before query No
earliestStartAfter query No
earliestStartBefore query No
expiration_after query No
expirationAfter query No
filter_id query No
filterId query No
id query No
observation_id query No
observationId query No
planned_start_after query No
planned_start_before query No
plannedStartAfter query No
plannedStartBefore query No
request_id query No
requestId query No
shutter_state query No
shutterState query No
sort_by query No
sortBy query No
status query No
telescope_id query No
telescopeId query No
token query No

Responses

{
    "items": [
        null
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "discriminator": {
                    "mapping": {
                        "optical_imaging": "#/components/schemas/OpticalImagingTaskSummary",
                        "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationTaskSummary",
                        "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationTaskSummary",
                        "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationTaskSummary",
                        "radio_mapping": "#/components/schemas/RadioMappingTaskSummary",
                        "radio_tracking": "#/components/schemas/RadioTrackingTaskSummary"
                    },
                    "propertyName": "taskType"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/OpticalImagingTaskSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingBiasCalibrationTaskSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingDarkCalibrationTaskSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingFlatCalibrationTaskSummary"
                    },
                    {
                        "$ref": "#/components/schemas/RadioTrackingTaskSummary"
                    },
                    {
                        "$ref": "#/components/schemas/RadioMappingTaskSummary"
                    }
                ]
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[Annotated[Union[OpticalImagingTaskSummary, OpticalImagingBiasCalibrationTaskSummary, OpticalImagingDarkCalibrationTaskSummary, OpticalImagingFlatCalibrationTaskSummary, RadioTrackingTaskSummary, RadioMappingTaskSummary], FieldInfo(annotation=NoneType, required=True, discriminator='task_type')]]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observation-tasks/{task_id}

Read Task

Input parameters

Parameter In Type Default Nullable Description
task_id path integer No
token query No

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingTask",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationTask",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationTask",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationTask",
            "radio_mapping": "#/components/schemas/RadioMappingTask",
            "radio_tracking": "#/components/schemas/RadioTrackingTask"
        },
        "propertyName": "taskType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingTask"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationTask"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationTask"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationTask"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingTask"
        },
        {
            "$ref": "#/components/schemas/RadioMappingTask"
        }
    ],
    "title": "Response Read Task Observation Tasks  Task Id  Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observation-tasks/{task_id}/detail

Read Task Detail

Input parameters

Parameter In Type Default Nullable Description
task_id path integer No
token query No

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingTaskDetail",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationTaskDetail",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationTaskDetail",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationTaskDetail",
            "radio_mapping": "#/components/schemas/RadioMappingTaskDetail",
            "radio_tracking": "#/components/schemas/RadioTrackingTaskDetail"
        },
        "propertyName": "taskType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingTaskDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationTaskDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationTaskDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationTaskDetail"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingTaskDetail"
        },
        {
            "$ref": "#/components/schemas/RadioMappingTaskDetail"
        }
    ],
    "title": "Response Read Task Detail Observation Tasks  Task Id  Detail Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

Observations


GET /observations

Read Observations

Input parameters

Parameter In Type Default Nullable Description
-creator query No
-creatorId query No
-group query No
-groupId query No
-organization query No
-organizationId query No
-owner query No
-ownerId query No
-status query No
completed_after query No
completed_before query No
completedAfter query No
completedBefore query No
created_after query No
created_before query No
createdAfter query No
createdBefore query No
creator query No
creator_ query No
creator_id query No
creator_id_ query No
creatorId query No
group query No
group_ query No
group_id query No
group_id_ query No
groupId query No
id query No
last_activity_after query No
last_activity_before query No
lastActivityAfter query No
lastActivityBefore query No
name query No
observation_type query No
observationType query No
organization query No
organization_ query No
organization_id query No
organization_id_ query No
organizationId query No
owner query No
owner_ query No
owner_id query No
owner_id_ query No
ownerId query No
sort_by query No
sortBy query No
status query No
status_ query No
token query No

Responses

{
    "items": [
        {
            "affinityHandoffAfterSec": null,
            "affinityMigrateAt": "frame",
            "cadenceCalendarUnit": null,
            "cadenceGapSec": null,
            "cadenceKind": "asap",
            "cadenceLevel": null,
            "cadencePeriodSec": null,
            "cancelOn": null,
            "cohesionLevel": null,
            "completedOn": null,
            "coordinationKind": null,
            "coordinationStartToleranceSec": null,
            "copiesCount": null,
            "copiesMode": "single",
            "coverAssetUid": null,
            "coverPreviewFileId": null,
            "coverThumbnailFileId": null,
            "createdOn": "2022-04-13T15:42:05.901Z",
            "creator": null,
            "creatorId": 0,
            "creatorUid": null,
            "currentEpoch": 0,
            "epochCount": 0,
            "galleryItems": null,
            "groupUid": null,
            "id": 0,
            "instrumentIds": null,
            "instrumentMode": "none",
            "interruptLowerPriority": true,
            "interruptRecovery": "resume",
            "isDeleted": true,
            "isPublic": true,
            "lastActivityOn": null,
            "name": "string",
            "observabilityLastUpdatedOn": null,
            "observingGrantIds": null,
            "opticalImagingConfiguration": null,
            "owner": null,
            "ownerId": 0,
            "ownerUid": null,
            "priority": 0,
            "progressFraction": 10.12,
            "radioMappingConfiguration": null,
            "radioTrackingConfiguration": null,
            "requestTypes": [
                "optical_imaging"
            ],
            "sampleOrdering": "request_major",
            "startAfter": null,
            "status": "active",
            "target": null,
            "targetId": null,
            "targetUid": null,
            "uid": "0506a243-6367-410b-b05a-2b3439553893",
            "updatedOn": "2022-04-13T15:42:05.901Z"
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservationSummary"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservationSummary]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

DELETE /observations/{observation_id}

Delete Observation

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

Schema of the response body

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}

Read Observation

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": "frame",
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": "asap",
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": "single",
    "coverAssetUid": null,
    "coverPreviewFileId": null,
    "coverThumbnailFileId": null,
    "createdOn": "2022-04-13T15:42:05.901Z",
    "creatorId": 0,
    "creatorUid": null,
    "currentEpoch": 0,
    "epochCount": 0,
    "groupUid": null,
    "id": 0,
    "instrumentIds": null,
    "instrumentMode": "none",
    "interruptLowerPriority": true,
    "interruptRecovery": "resume",
    "isDeleted": true,
    "isPublic": true,
    "lastActivityOn": null,
    "name": "string",
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "opticalImagingConfiguration": null,
    "ownerId": 0,
    "ownerUid": null,
    "priority": 0,
    "progressFraction": 10.12,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "requestTypes": [
        "optical_imaging"
    ],
    "sampleOrdering": "request_major",
    "startAfter": null,
    "status": "active",
    "targetId": null,
    "targetUid": null,
    "uid": "bc8580e5-de85-4c7d-b940-907a456a9693",
    "updatedOn": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "observation"
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "$ref": "#/components/schemas/CadenceKind",
            "default": "asap"
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "epoch"
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode",
            "default": "single"
        },
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverPreviewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverThumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdOn": {
            "description": "Creation timestamp.",
            "format": "date-time",
            "type": "string"
        },
        "creatorId": {
            "description": "User who created it.",
            "type": "integer"
        },
        "creatorUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentEpoch": {
            "default": 0,
            "type": "integer"
        },
        "epochCount": {
            "default": 1,
            "description": "Number of visits. 0 = repeat indefinitely.",
            "type": "integer"
        },
        "groupUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "id": {
            "description": "Unique identifier of the observation.",
            "type": "integer"
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "$ref": "#/components/schemas/InstrumentAccessMode"
        },
        "interruptLowerPriority": {
            "description": "Interrupt lower priority.",
            "type": "boolean"
        },
        "interruptRecovery": {
            "$ref": "#/components/schemas/InterruptRecovery",
            "default": "resume"
        },
        "isDeleted": {
            "description": "Flag indicating if deleted.",
            "type": "boolean"
        },
        "isPublic": {
            "type": "boolean"
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "description": "Name of the observation.",
            "type": "string"
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Timestamp of the last observability refresh."
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Output"
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "description": "Entity that funds this observation.",
            "type": "integer"
        },
        "ownerUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "type": "integer"
        },
        "progressFraction": {
            "type": "number"
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestTypes": {
            "items": {
                "$ref": "#/components/schemas/ObservationType"
            },
            "type": "array"
        },
        "sampleOrdering": {
            "$ref": "#/components/schemas/SampleOrdering",
            "default": "request_major"
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "$ref": "#/components/schemas/ObservationStatus"
        },
        "targetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Unique identifier of the target associated with the observation."
        },
        "targetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        },
        "updatedOn": {
            "description": "Update timestamp.",
            "format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "targetId",
        "status",
        "isDeleted",
        "createdOn",
        "updatedOn",
        "name",
        "ownerId",
        "creatorId",
        "interruptLowerPriority",
        "priority",
        "progressFraction",
        "isPublic",
        "instrumentMode"
    ],
    "title": "Observation",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PATCH /observations/{observation_id}

Update Observation

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": null,
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": null,
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": null,
    "epochCount": null,
    "instrumentIds": null,
    "instrumentMode": null,
    "interruptLowerPriority": null,
    "interruptRecovery": null,
    "isDeleted": null,
    "isPublic": null,
    "lastActivityOn": null,
    "name": null,
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "opticalImagingConfiguration": null,
    "ownerId": null,
    "priority": null,
    "progressFraction": null,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "renderSettings": null,
    "sampleOrdering": null,
    "startAfter": null,
    "status": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CadenceKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CopiesMode"
                },
                {
                    "type": "null"
                }
            ]
        },
        "epochCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/InstrumentAccessMode"
                },
                {
                    "type": "null"
                }
            ]
        },
        "interruptLowerPriority": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "interruptRecovery": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/InterruptRecovery"
                },
                {
                    "type": "null"
                }
            ]
        },
        "isDeleted": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "isPublic": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Input"
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "progressFraction": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderSettings": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RenderSettings"
                },
                {
                    "type": "null"
                }
            ]
        },
        "sampleOrdering": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/SampleOrdering"
                },
                {
                    "type": "null"
                }
            ]
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationStatus"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "title": "ObservationUpdate",
    "type": "object"
}

Responses

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": "frame",
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": "asap",
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": "single",
    "coverAssetUid": null,
    "coverPreviewFileId": null,
    "coverThumbnailFileId": null,
    "createdOn": "2022-04-13T15:42:05.901Z",
    "creator": null,
    "creatorId": 0,
    "creatorUid": null,
    "currentEpoch": 0,
    "epochCount": 0,
    "galleryItems": null,
    "groupUid": null,
    "id": 0,
    "instrumentIds": null,
    "instrumentMode": "none",
    "interruptLowerPriority": true,
    "interruptRecovery": "resume",
    "isDeleted": true,
    "isPublic": true,
    "lastActivityOn": null,
    "name": "string",
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "observingGrants": null,
    "opticalImagingConfiguration": null,
    "owner": null,
    "ownerId": 0,
    "ownerUid": null,
    "priority": 0,
    "progressFraction": 10.12,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "renderSettings": null,
    "requestTypes": [
        "optical_imaging"
    ],
    "sampleOrdering": "request_major",
    "startAfter": null,
    "status": "active",
    "target": null,
    "targetId": null,
    "targetUid": null,
    "uid": "170584bd-bb2b-44dd-bde5-64b02d639e9e",
    "updatedOn": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "observation"
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "$ref": "#/components/schemas/CadenceKind",
            "default": "asap"
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "epoch"
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode",
            "default": "single"
        },
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverPreviewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverThumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdOn": {
            "description": "Creation timestamp.",
            "format": "date-time",
            "type": "string"
        },
        "creator": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "creatorId": {
            "description": "User who created it.",
            "type": "integer"
        },
        "creatorUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentEpoch": {
            "default": 0,
            "type": "integer"
        },
        "epochCount": {
            "default": 1,
            "description": "Number of visits. 0 = repeat indefinitely.",
            "type": "integer"
        },
        "galleryItems": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationGalleryItem"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "groupUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "id": {
            "description": "Unique identifier of the observation.",
            "type": "integer"
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "$ref": "#/components/schemas/InstrumentAccessMode"
        },
        "interruptLowerPriority": {
            "description": "Interrupt lower priority.",
            "type": "boolean"
        },
        "interruptRecovery": {
            "$ref": "#/components/schemas/InterruptRecovery",
            "default": "resume"
        },
        "isDeleted": {
            "description": "Flag indicating if deleted.",
            "type": "boolean"
        },
        "isPublic": {
            "type": "boolean"
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "description": "Name of the observation.",
            "type": "string"
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Timestamp of the last observability refresh."
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrants": {
            "anyOf": [
                {
                    "items": {
                        "discriminator": {
                            "mapping": {
                                "externally_managed": "#/components/schemas/ExternallyManagedObservingGrantDetail",
                                "group": "#/components/schemas/GroupObservingGrantDetail",
                                "group_managed": "#/components/schemas/GroupManagedObservingGrantDetail",
                                "member": "#/components/schemas/MemberObservingGrantDetail",
                                "owner": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            "propertyName": "grantType"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MemberObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/ExternallyManagedObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupManagedObservingGrantDetail"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Output"
                },
                {
                    "type": "null"
                }
            ]
        },
        "owner": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "description": "Entity that funds this observation.",
            "type": "integer"
        },
        "ownerUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "type": "integer"
        },
        "progressFraction": {
            "type": "number"
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderSettings": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RenderSettings"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestTypes": {
            "items": {
                "$ref": "#/components/schemas/ObservationType"
            },
            "type": "array"
        },
        "sampleOrdering": {
            "$ref": "#/components/schemas/SampleOrdering",
            "default": "request_major"
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "$ref": "#/components/schemas/ObservationStatus"
        },
        "target": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/Target"
                },
                {
                    "type": "null"
                }
            ]
        },
        "targetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Unique identifier of the target associated with the observation."
        },
        "targetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        },
        "updatedOn": {
            "description": "Update timestamp.",
            "format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "targetId",
        "status",
        "isDeleted",
        "createdOn",
        "updatedOn",
        "name",
        "ownerId",
        "creatorId",
        "interruptLowerPriority",
        "priority",
        "progressFraction",
        "isPublic",
        "instrumentMode"
    ],
    "title": "ObservationDetail",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observations/{observation_id}/apply-spec

Apply Spec To Observation

Description

Apply a client-held spec onto an existing observation in place (C22 / S1) — the stateless editor's edit-existing path.

Replaces the draft-clone + publish-merge: mutate the existing row directly (one id, no supersession). Requests are reconciled by the request_uids side-channel so request identity — and the ObservationTask.request_id FKs of any already-generated tasks — survives the edit. See update_observation_from_spec.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

{
    "instrumentIds": null,
    "isPublic": null,
    "name": null,
    "observingGrantIds": null,
    "requestUids": [
        null
    ],
    "spec": {
        "data": {},
        "schemaKind": "string",
        "schemaVersion": 0
    },
    "targetSnr": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "isPublic": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestUids": {
            "items": {
                "anyOf": [
                    {
                        "format": "uuid",
                        "type": "string"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "type": "array"
        },
        "spec": {
            "$ref": "#/components/schemas/SpecEnvelope"
        },
        "targetSnr": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "required": [
        "spec"
    ],
    "title": "ApplySpecRequest",
    "type": "object"
}

Responses

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": "frame",
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": "asap",
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": "single",
    "coverAssetUid": null,
    "coverPreviewFileId": null,
    "coverThumbnailFileId": null,
    "createdOn": "2022-04-13T15:42:05.901Z",
    "creator": null,
    "creatorId": 0,
    "creatorUid": null,
    "currentEpoch": 0,
    "epochCount": 0,
    "galleryItems": null,
    "groupUid": null,
    "id": 0,
    "instrumentIds": null,
    "instrumentMode": "none",
    "interruptLowerPriority": true,
    "interruptRecovery": "resume",
    "isDeleted": true,
    "isPublic": true,
    "lastActivityOn": null,
    "name": "string",
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "observingGrants": null,
    "opticalImagingConfiguration": null,
    "owner": null,
    "ownerId": 0,
    "ownerUid": null,
    "priority": 0,
    "progressFraction": 10.12,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "renderSettings": null,
    "requestTypes": [
        "optical_imaging"
    ],
    "sampleOrdering": "request_major",
    "startAfter": null,
    "status": "active",
    "target": null,
    "targetId": null,
    "targetUid": null,
    "uid": "6d083dc1-8a3d-4a5c-b7c3-ba2a9440d3ac",
    "updatedOn": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "observation"
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "$ref": "#/components/schemas/CadenceKind",
            "default": "asap"
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "epoch"
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode",
            "default": "single"
        },
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverPreviewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverThumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdOn": {
            "description": "Creation timestamp.",
            "format": "date-time",
            "type": "string"
        },
        "creator": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "creatorId": {
            "description": "User who created it.",
            "type": "integer"
        },
        "creatorUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentEpoch": {
            "default": 0,
            "type": "integer"
        },
        "epochCount": {
            "default": 1,
            "description": "Number of visits. 0 = repeat indefinitely.",
            "type": "integer"
        },
        "galleryItems": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationGalleryItem"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "groupUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "id": {
            "description": "Unique identifier of the observation.",
            "type": "integer"
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "$ref": "#/components/schemas/InstrumentAccessMode"
        },
        "interruptLowerPriority": {
            "description": "Interrupt lower priority.",
            "type": "boolean"
        },
        "interruptRecovery": {
            "$ref": "#/components/schemas/InterruptRecovery",
            "default": "resume"
        },
        "isDeleted": {
            "description": "Flag indicating if deleted.",
            "type": "boolean"
        },
        "isPublic": {
            "type": "boolean"
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "description": "Name of the observation.",
            "type": "string"
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Timestamp of the last observability refresh."
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrants": {
            "anyOf": [
                {
                    "items": {
                        "discriminator": {
                            "mapping": {
                                "externally_managed": "#/components/schemas/ExternallyManagedObservingGrantDetail",
                                "group": "#/components/schemas/GroupObservingGrantDetail",
                                "group_managed": "#/components/schemas/GroupManagedObservingGrantDetail",
                                "member": "#/components/schemas/MemberObservingGrantDetail",
                                "owner": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            "propertyName": "grantType"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MemberObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/ExternallyManagedObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupManagedObservingGrantDetail"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Output"
                },
                {
                    "type": "null"
                }
            ]
        },
        "owner": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "description": "Entity that funds this observation.",
            "type": "integer"
        },
        "ownerUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "type": "integer"
        },
        "progressFraction": {
            "type": "number"
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderSettings": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RenderSettings"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestTypes": {
            "items": {
                "$ref": "#/components/schemas/ObservationType"
            },
            "type": "array"
        },
        "sampleOrdering": {
            "$ref": "#/components/schemas/SampleOrdering",
            "default": "request_major"
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "$ref": "#/components/schemas/ObservationStatus"
        },
        "target": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/Target"
                },
                {
                    "type": "null"
                }
            ]
        },
        "targetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Unique identifier of the target associated with the observation."
        },
        "targetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        },
        "updatedOn": {
            "description": "Update timestamp.",
            "format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "targetId",
        "status",
        "isDeleted",
        "createdOn",
        "updatedOn",
        "name",
        "ownerId",
        "creatorId",
        "interruptLowerPriority",
        "priority",
        "progressFraction",
        "isPublic",
        "instrumentMode"
    ],
    "title": "ObservationDetail",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/assets

Read Observation Assets

Input parameters

Parameter In Type Default Nullable Description
created_after query No
created_before query No
created_by query No
createdAfter query No
createdBefore query No
createdBy query No
id query No
include_diagnostics query boolean False No
includeDiagnostics query No
is_processing_output query No
is_transferrable query No
isProcessingOutput query No
isTransferrable query No
mime_type query No
mimeType query No
name query No
observation_id path string No Observation uid (preferred) or legacy integer id
processing_flags query No
processing_flags_exclude query No
processingFlags query No
processingFlagsExclude query No
qa_status query No
qaStatus query No
request_id query No
requestId query No
role query No
role_exclude query No
roleExclude query No
server_qa_status query No
serverQaStatus query No
sort_by query No
sortBy query No
task_id query No
taskId query No
token query No
transfer_state query No
transferState query No
view query No

Responses

{
    "items": [
        {
            "copyStatus": null,
            "createdAtNode": null,
            "currentAnalysisRun": null,
            "currentAnalysisRunId": null,
            "currentProcessingOutput": null,
            "currentProcessingOutputId": null,
            "currentProcessingRun": null,
            "currentProcessingRunId": null,
            "currentRenderRun": null,
            "currentRenderRunId": null,
            "file": null,
            "fileId": "39d42214-8c03-484e-b87f-146cddd0a9f3",
            "id": 0,
            "instrumentId": 0,
            "instrumentUid": null,
            "isTransferrable": null,
            "lastTransferAttempt": null,
            "localFileId": null,
            "nextEligibleRenderAt": null,
            "nextTransferAttemptAt": null,
            "nodeAvailableUntil": null,
            "nodeCopyDeletedAt": null,
            "nodeFinalizedAt": null,
            "nodeStage": null,
            "observationId": 0,
            "observationUid": null,
            "previewFile": null,
            "previewFileId": null,
            "processingFlags": null,
            "processingRunCount": null,
            "qaMetrics": null,
            "qaReason": null,
            "qaStatus": null,
            "reductionInfo": null,
            "remoteFilePath": null,
            "renderDirtyAt": null,
            "resultProcessingOutputs": null,
            "role": null,
            "rootObservationAssetId": null,
            "rootObservationAssetUid": null,
            "serverQaMetrics": null,
            "serverQaReason": null,
            "serverQaStatus": null,
            "taskInfo": null,
            "thumbnailFile": null,
            "thumbnailFileId": null,
            "transferAttempts": null,
            "transferError": null,
            "transferProgressFraction": null,
            "transferState": null,
            "transferredAt": null,
            "uid": "56e3025d-a25c-4539-a898-1f01e7811fb0"
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservationAssetSummary"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservationAssetSummary]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/assets/facets

Read Observation Asset Facets

Description

Availability facets over the observation's assets: which roles and processing flags exist (with counts) plus how many assets an external FITS consumer can import right now. Applies the same observer-narrative default as the assets listing (diagnostic roles + node-only transient rows hidden unless include_diagnostics). Powers availability-aware filter composition — the "Open in Afterglow" pre-open dialog — so zero-match filters can't be composed and the option set adapts to any observation type. See docs/internal/design/afterglow/AFTERGLOW_LIVE_OBSERVATION_PIPELINE.md (D-2/OQ-4).

Input parameters

Parameter In Type Default Nullable Description
include_diagnostics query boolean False No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "importableCount": 0,
    "pipeline": {
        "calibratedCount": 0,
        "capturedCount": 0,
        "processedCount": 0,
        "solvedCount": 0
    },
    "processingFlags": [
        {
            "count": 0,
            "flag": "reduced"
        }
    ],
    "roles": [
        {
            "count": 0,
            "role": "SCIENCE_LIGHT"
        }
    ],
    "totalCount": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Availability facets over an observation's assets — which roles and\nprocessing flags actually exist (with counts), under the same\nobserver-narrative default as the assets listing. Powers availability-aware\nfilter composition (the website's \"Open in Afterglow\" pre-open dialog):\noptions are derived from what exists, so zero-match filters are impossible\nto compose and the vocabulary adapts to every observation type with no\nper-type hardcoding. See\ndocs/internal/design/afterglow/AFTERGLOW_LIVE_OBSERVATION_PIPELINE.md (D-2/OQ-4).",
    "properties": {
        "importableCount": {
            "description": "Server-held FITS-image assets — the subset an external FITS consumer (e.g. the Afterglow data provider) can import right now. Gates the 'Open in Afterglow' action together with the observation's active state (an active observation may still produce importable data).",
            "type": "integer"
        },
        "pipeline": {
            "$ref": "#/components/schemas/ObservationAssetPipelineFacets",
            "description": "Per-stage capture counts for the Overview's pipeline strip."
        },
        "processingFlags": {
            "description": "Distinct processing flags present across assets, with counts (descending).",
            "items": {
                "$ref": "#/components/schemas/ObservationAssetProcessingFlagFacet"
            },
            "type": "array"
        },
        "roles": {
            "description": "Distinct roles present, with counts (descending).",
            "items": {
                "$ref": "#/components/schemas/ObservationAssetRoleFacet"
            },
            "type": "array"
        },
        "totalCount": {
            "description": "Assets visible under the applied narrative.",
            "type": "integer"
        }
    },
    "required": [
        "totalCount",
        "importableCount",
        "roles",
        "processingFlags",
        "pipeline"
    ],
    "title": "ObservationAssetFacets",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/assets/{asset_id}

Read Observation Asset

Description

Fetch a single asset, by uid (the asset page's address) or legacy int id.

Lets a script poll one asset's transfer lifecycle (transfer_state, transfer_progress_fraction, copy_status) after POST .../request-transfer, instead of re-listing the whole observation — and backs the asset page (result-surfaces phase 3), whose route is uid-addressed.

Input parameters

Parameter In Type Default Nullable Description
asset_id path string No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "copyStatus": null,
    "createdAtNode": null,
    "currentAnalysisRun": null,
    "currentAnalysisRunId": null,
    "currentProcessingOutput": null,
    "currentProcessingOutputId": null,
    "currentProcessingRun": null,
    "currentProcessingRunId": null,
    "currentRenderRun": null,
    "currentRenderRunId": null,
    "file": null,
    "fileId": "fb6f9162-69b1-463b-ad8c-1c8e7470befc",
    "id": 0,
    "instrumentId": 0,
    "instrumentUid": null,
    "isTransferrable": null,
    "lastTransferAttempt": null,
    "localFileId": null,
    "nextEligibleRenderAt": null,
    "nextTransferAttemptAt": null,
    "nodeAvailableUntil": null,
    "nodeCopyDeletedAt": null,
    "nodeFinalizedAt": null,
    "nodeStage": null,
    "observationId": 0,
    "observationUid": null,
    "previewFile": null,
    "previewFileId": null,
    "processingFlags": null,
    "processingRunCount": null,
    "qaMetrics": null,
    "qaReason": null,
    "qaStatus": null,
    "reductionInfo": null,
    "remoteFilePath": null,
    "renderDirtyAt": null,
    "resultProcessingOutputs": null,
    "role": null,
    "rootObservationAssetId": null,
    "rootObservationAssetUid": null,
    "serverQaMetrics": null,
    "serverQaReason": null,
    "serverQaStatus": null,
    "taskInfo": null,
    "thumbnailFile": null,
    "thumbnailFileId": null,
    "transferAttempts": null,
    "transferError": null,
    "transferProgressFraction": null,
    "transferState": null,
    "transferredAt": null,
    "uid": "161c1997-adbd-41e0-b455-596456aebc59"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "copyStatus": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AssetCopyStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdAtNode": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentAnalysisRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetAnalysisRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentAnalysisRunId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingOutput": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetProcessingOutputSummary"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingOutputId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetProcessingRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingRunId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentRenderRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetRenderRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentRenderRunId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "file": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/File"
                },
                {
                    "type": "null"
                }
            ]
        },
        "fileId": {
            "format": "uuid",
            "type": "string"
        },
        "id": {
            "type": "integer"
        },
        "instrumentId": {
            "type": "integer"
        },
        "instrumentUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "isTransferrable": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "lastTransferAttempt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "localFileId": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nextEligibleRenderAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nextTransferAttemptAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeAvailableUntil": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeCopyDeletedAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeFinalizedAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeStage": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetNodeStage"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observationId": {
            "type": "integer"
        },
        "observationUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "previewFile": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/File"
                },
                {
                    "type": "null"
                }
            ]
        },
        "previewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "processingFlags": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationAssetProcessingFlag"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "processingRunCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "qaMetrics": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalFrameQaMetrics"
                },
                {
                    "type": "null"
                }
            ]
        },
        "qaReason": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "qaStatus": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetQaStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reductionInfo": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetReductionInfo"
                },
                {
                    "type": "null"
                }
            ]
        },
        "remoteFilePath": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderDirtyAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "resultProcessingOutputs": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationResultProcessingRunOutputSummary"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "role": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetRole"
                },
                {
                    "type": "null"
                }
            ]
        },
        "rootObservationAssetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "rootObservationAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "serverQaMetrics": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ]
        },
        "serverQaReason": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "serverQaStatus": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetQaStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "taskInfo": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingObservationAssetTaskInfoDetail"
                },
                {
                    "$ref": "#/components/schemas/OpticalImagingCalibrationObservationAssetTaskInfoDetail"
                },
                {
                    "$ref": "#/components/schemas/RadioTrackingObservationAssetTaskInfoDetail"
                },
                {
                    "type": "null"
                }
            ]
        },
        "thumbnailFile": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/File"
                },
                {
                    "type": "null"
                }
            ]
        },
        "thumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferAttempts": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferError": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferProgressFraction": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferState": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RemoteAssetTransferState"
                },
                {
                    "type": "null"
                }
            ],
            "default": "not_started"
        },
        "transferredAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "observationId",
        "instrumentId",
        "fileId"
    ],
    "title": "ObservationAssetSummary",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/assets/{asset_id}/data

Download Observation Asset Data

Description

Download shortcut: 307-redirect to the asset's file bytes.

Collapses the list → read file_id → presign dance into one call: resolves the asset to its File and redirects to GET /v1/files/{file_id}/data (which presigns + redirects to storage). The file must be server-resident (transfer_state=transferred); call .../request-transfer first otherwise.

Input parameters

Parameter In Type Default Nullable Description
asset_id path integer No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

Schema of the response body

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/assets/{asset_id}/forensics

Read Observation Asset Forensics

Description

The asset's pipeline forensics document (ASSET_PIPELINE_FORENSICS_DESIGN.md).

Resolves the asset's CURRENT processing run's artifact — the field-cal match table + fit the asset page renders — gunzips it server-side, and returns the JSON. 404 when the run predates forensics (they are never backfilled; a re-process regenerates them) or the artifact's bytes were superseded. View permission, like the asset itself; the storage layout stays a server detail.

Input parameters

Parameter In Type Default Nullable Description
asset_id path integer No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

Schema of the response body

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PATCH /observations/{observation_id}/assets/{asset_id}/render-settings

Update Asset Render Settings

Description

Save per-image render settings (C23 / S3).

The owner-permissioned, asset-scoped counterpart to updating an observation's render settings: writes the asset's file-level render_settings (the per-asset override _effective_settings checks first) and marks that single asset dirty so the scheduler re-renders its thumbnail/preview. The generic PATCH /v1/files/{id} is admin-only and explicitly not the place for this.

Input parameters

Parameter In Type Default Nullable Description
asset_id path integer No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

{
    "normalization": {
        "backgroundPercentile": 10.12,
        "midtonePercentile": 10.12,
        "saturationPercentile": 10.12,
        "stretch": "asinh"
    },
    "rendering": {
        "colormap": "string",
        "invert": true,
        "nan": "black"
    },
    "schemaVersion": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "normalization": {
            "$ref": "#/components/schemas/RenderNormalization"
        },
        "rendering": {
            "$ref": "#/components/schemas/RenderPalette"
        },
        "schemaVersion": {
            "default": 1,
            "description": "Render settings schema version.",
            "type": "integer"
        }
    },
    "title": "RenderSettings",
    "type": "object"
}

Responses

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observations/{observation_id}/assets/{asset_id}/request-transfer

Request Asset Transfer

Description

Observer "transfer this": mark a node-resident asset for transfer.

Sets the server-owned transfer decision (is_transferrable=True). The ingestor's policy pass then queues it for fetch, provided the node has finalized it and still holds the file. Used to pull diagnostics the default policy left node-only. Rejects if the node copy is already gone (nothing to fetch).

Input parameters

Parameter In Type Default Nullable Description
asset_id path integer No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "copyStatus": null,
    "createdAtNode": null,
    "currentAnalysisRun": null,
    "currentAnalysisRunId": null,
    "currentProcessingOutput": null,
    "currentProcessingOutputId": null,
    "currentProcessingRun": null,
    "currentProcessingRunId": null,
    "currentRenderRun": null,
    "currentRenderRunId": null,
    "file": null,
    "fileId": "1d84cfb2-cc82-49e1-87cf-8b3054bc7e74",
    "id": 0,
    "instrumentId": 0,
    "instrumentUid": null,
    "isTransferrable": null,
    "lastTransferAttempt": null,
    "localFileId": null,
    "nextEligibleRenderAt": null,
    "nextTransferAttemptAt": null,
    "nodeAvailableUntil": null,
    "nodeCopyDeletedAt": null,
    "nodeFinalizedAt": null,
    "nodeStage": null,
    "observationId": 0,
    "observationUid": null,
    "previewFile": null,
    "previewFileId": null,
    "processingFlags": null,
    "processingRunCount": null,
    "qaMetrics": null,
    "qaReason": null,
    "qaStatus": null,
    "reductionInfo": null,
    "remoteFilePath": null,
    "renderDirtyAt": null,
    "resultProcessingOutputs": null,
    "role": null,
    "rootObservationAssetId": null,
    "rootObservationAssetUid": null,
    "serverQaMetrics": null,
    "serverQaReason": null,
    "serverQaStatus": null,
    "taskInfo": null,
    "thumbnailFile": null,
    "thumbnailFileId": null,
    "transferAttempts": null,
    "transferError": null,
    "transferProgressFraction": null,
    "transferState": null,
    "transferredAt": null,
    "uid": "1cc97c02-a157-4a94-a7a2-b2031343edab"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "copyStatus": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/AssetCopyStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdAtNode": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentAnalysisRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetAnalysisRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentAnalysisRunId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingOutput": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetProcessingOutputSummary"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingOutputId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetProcessingRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingRunId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentRenderRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetRenderRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentRenderRunId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "file": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/File"
                },
                {
                    "type": "null"
                }
            ]
        },
        "fileId": {
            "format": "uuid",
            "type": "string"
        },
        "id": {
            "type": "integer"
        },
        "instrumentId": {
            "type": "integer"
        },
        "instrumentUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "isTransferrable": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "lastTransferAttempt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "localFileId": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nextEligibleRenderAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nextTransferAttemptAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeAvailableUntil": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeCopyDeletedAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeFinalizedAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nodeStage": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetNodeStage"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observationId": {
            "type": "integer"
        },
        "observationUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "previewFile": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/File"
                },
                {
                    "type": "null"
                }
            ]
        },
        "previewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "processingFlags": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationAssetProcessingFlag"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "processingRunCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "qaMetrics": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalFrameQaMetrics"
                },
                {
                    "type": "null"
                }
            ]
        },
        "qaReason": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "qaStatus": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetQaStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "reductionInfo": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetReductionInfo"
                },
                {
                    "type": "null"
                }
            ]
        },
        "remoteFilePath": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderDirtyAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "resultProcessingOutputs": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationResultProcessingRunOutputSummary"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "role": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetRole"
                },
                {
                    "type": "null"
                }
            ]
        },
        "rootObservationAssetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "rootObservationAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "serverQaMetrics": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ]
        },
        "serverQaReason": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "serverQaStatus": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationAssetQaStatus"
                },
                {
                    "type": "null"
                }
            ]
        },
        "taskInfo": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingObservationAssetTaskInfoDetail"
                },
                {
                    "$ref": "#/components/schemas/OpticalImagingCalibrationObservationAssetTaskInfoDetail"
                },
                {
                    "$ref": "#/components/schemas/RadioTrackingObservationAssetTaskInfoDetail"
                },
                {
                    "type": "null"
                }
            ]
        },
        "thumbnailFile": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/File"
                },
                {
                    "type": "null"
                }
            ]
        },
        "thumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferAttempts": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferError": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferProgressFraction": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "transferState": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RemoteAssetTransferState"
                },
                {
                    "type": "null"
                }
            ],
            "default": "not_started"
        },
        "transferredAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "observationId",
        "instrumentId",
        "fileId"
    ],
    "title": "ObservationAssetSummary",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PUT /observations/{observation_id}/cover

Set Observation Cover

Description

Set (or clear, with a null coverAssetUid) the observation's cover image.

The cover must be one of the observation's own assets. Clearing it reverts to the auto/representative thumbnail at read time. Owner-permissioned.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

{
    "coverAssetUid": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "Set (or clear, with null) an observation's or project's cover image to one\nof its rendered assets, addressed by the asset's uid.",
    "properties": {
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "title": "CoverUpdate",
    "type": "object"
}

Responses

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": "frame",
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": "asap",
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": "single",
    "coverAssetUid": null,
    "coverPreviewFileId": null,
    "coverThumbnailFileId": null,
    "createdOn": "2022-04-13T15:42:05.901Z",
    "creator": null,
    "creatorId": 0,
    "creatorUid": null,
    "currentEpoch": 0,
    "epochCount": 0,
    "galleryItems": null,
    "groupUid": null,
    "id": 0,
    "instrumentIds": null,
    "instrumentMode": "none",
    "interruptLowerPriority": true,
    "interruptRecovery": "resume",
    "isDeleted": true,
    "isPublic": true,
    "lastActivityOn": null,
    "name": "string",
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "observingGrants": null,
    "opticalImagingConfiguration": null,
    "owner": null,
    "ownerId": 0,
    "ownerUid": null,
    "priority": 0,
    "progressFraction": 10.12,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "renderSettings": null,
    "requestTypes": [
        "optical_imaging"
    ],
    "sampleOrdering": "request_major",
    "startAfter": null,
    "status": "active",
    "target": null,
    "targetId": null,
    "targetUid": null,
    "uid": "b24a2769-9a20-4cd2-9c10-594d7070391b",
    "updatedOn": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "observation"
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "$ref": "#/components/schemas/CadenceKind",
            "default": "asap"
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "epoch"
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode",
            "default": "single"
        },
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverPreviewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverThumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdOn": {
            "description": "Creation timestamp.",
            "format": "date-time",
            "type": "string"
        },
        "creator": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "creatorId": {
            "description": "User who created it.",
            "type": "integer"
        },
        "creatorUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentEpoch": {
            "default": 0,
            "type": "integer"
        },
        "epochCount": {
            "default": 1,
            "description": "Number of visits. 0 = repeat indefinitely.",
            "type": "integer"
        },
        "galleryItems": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationGalleryItem"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "groupUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "id": {
            "description": "Unique identifier of the observation.",
            "type": "integer"
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "$ref": "#/components/schemas/InstrumentAccessMode"
        },
        "interruptLowerPriority": {
            "description": "Interrupt lower priority.",
            "type": "boolean"
        },
        "interruptRecovery": {
            "$ref": "#/components/schemas/InterruptRecovery",
            "default": "resume"
        },
        "isDeleted": {
            "description": "Flag indicating if deleted.",
            "type": "boolean"
        },
        "isPublic": {
            "type": "boolean"
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "description": "Name of the observation.",
            "type": "string"
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Timestamp of the last observability refresh."
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrants": {
            "anyOf": [
                {
                    "items": {
                        "discriminator": {
                            "mapping": {
                                "externally_managed": "#/components/schemas/ExternallyManagedObservingGrantDetail",
                                "group": "#/components/schemas/GroupObservingGrantDetail",
                                "group_managed": "#/components/schemas/GroupManagedObservingGrantDetail",
                                "member": "#/components/schemas/MemberObservingGrantDetail",
                                "owner": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            "propertyName": "grantType"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MemberObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/ExternallyManagedObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupManagedObservingGrantDetail"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Output"
                },
                {
                    "type": "null"
                }
            ]
        },
        "owner": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "description": "Entity that funds this observation.",
            "type": "integer"
        },
        "ownerUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "type": "integer"
        },
        "progressFraction": {
            "type": "number"
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderSettings": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RenderSettings"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestTypes": {
            "items": {
                "$ref": "#/components/schemas/ObservationType"
            },
            "type": "array"
        },
        "sampleOrdering": {
            "$ref": "#/components/schemas/SampleOrdering",
            "default": "request_major"
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "$ref": "#/components/schemas/ObservationStatus"
        },
        "target": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/Target"
                },
                {
                    "type": "null"
                }
            ]
        },
        "targetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Unique identifier of the target associated with the observation."
        },
        "targetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        },
        "updatedOn": {
            "description": "Update timestamp.",
            "format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "targetId",
        "status",
        "isDeleted",
        "createdOn",
        "updatedOn",
        "name",
        "ownerId",
        "creatorId",
        "interruptLowerPriority",
        "priority",
        "progressFraction",
        "isPublic",
        "instrumentMode"
    ],
    "title": "ObservationDetail",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/data-tools

Read Observation Data Tools

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

[
    null
]
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "items": {
        "discriminator": {
            "mapping": {
                "cluster_modeling": "#/components/schemas/ClusterModelingTool",
                "radio_tracking_continuum": "#/components/schemas/RadioTrackingContinuumDataTool",
                "radio_tracking_spectrum": "#/components/schemas/RadioTrackingSpectrumDataTool",
                "spectral_composer": "#/components/schemas/SpectralComposerTool",
                "time_lapse_creator": "#/components/schemas/TimeLapseCreatorTool",
                "time_series_photometry": "#/components/schemas/TimeSeriesPhotometryTool",
                "transient_detector": "#/components/schemas/TransientDetectorTool"
            },
            "propertyName": "dataToolType"
        },
        "oneOf": [
            {
                "$ref": "#/components/schemas/TimeSeriesPhotometryTool"
            },
            {
                "$ref": "#/components/schemas/SpectralComposerTool"
            },
            {
                "$ref": "#/components/schemas/TimeLapseCreatorTool"
            },
            {
                "$ref": "#/components/schemas/ClusterModelingTool"
            },
            {
                "$ref": "#/components/schemas/TransientDetectorTool"
            },
            {
                "$ref": "#/components/schemas/RadioTrackingContinuumDataTool"
            },
            {
                "$ref": "#/components/schemas/RadioTrackingSpectrumDataTool"
            }
        ]
    },
    "title": "Response Read Observation Data Tools Observations  Observation Id  Data Tools Get",
    "type": "array"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observations/{observation_id}/data-tools

Create Data Tool

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

Schema of the request body
{
    "discriminator": {
        "mapping": {
            "cluster_modeling": "#/components/schemas/ClusterModelingToolCreate",
            "radio_tracking_continuum": "#/components/schemas/RadioTrackingContinuumDataToolCreate",
            "radio_tracking_spectrum": "#/components/schemas/RadioTrackingSpectrumDataToolCreate",
            "spectral_composer": "#/components/schemas/SpectralComposerToolCreate",
            "time_lapse_creator": "#/components/schemas/TimeLapseCreatorToolCreate",
            "time_series_photometry": "#/components/schemas/TimeSeriesPhotometryToolCreate",
            "transient_detector": "#/components/schemas/TransientDetectorToolCreate"
        },
        "propertyName": "dataToolType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/TimeSeriesPhotometryToolCreate"
        },
        {
            "$ref": "#/components/schemas/SpectralComposerToolCreate"
        },
        {
            "$ref": "#/components/schemas/TimeLapseCreatorToolCreate"
        },
        {
            "$ref": "#/components/schemas/ClusterModelingToolCreate"
        },
        {
            "$ref": "#/components/schemas/TransientDetectorToolCreate"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingContinuumDataToolCreate"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingSpectrumDataToolCreate"
        }
    ],
    "title": "Body"
}

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "cluster_modeling": "#/components/schemas/ClusterModelingTool",
            "radio_tracking_continuum": "#/components/schemas/RadioTrackingContinuumDataTool",
            "radio_tracking_spectrum": "#/components/schemas/RadioTrackingSpectrumDataTool",
            "spectral_composer": "#/components/schemas/SpectralComposerTool",
            "time_lapse_creator": "#/components/schemas/TimeLapseCreatorTool",
            "time_series_photometry": "#/components/schemas/TimeSeriesPhotometryTool",
            "transient_detector": "#/components/schemas/TransientDetectorTool"
        },
        "propertyName": "dataToolType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/TimeSeriesPhotometryTool"
        },
        {
            "$ref": "#/components/schemas/SpectralComposerTool"
        },
        {
            "$ref": "#/components/schemas/TimeLapseCreatorTool"
        },
        {
            "$ref": "#/components/schemas/ClusterModelingTool"
        },
        {
            "$ref": "#/components/schemas/TransientDetectorTool"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingContinuumDataTool"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingSpectrumDataTool"
        }
    ],
    "title": "Response Create Data Tool Observations  Observation Id  Data Tools Post"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/data-tools/available

Read Observation Available Data Tools

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "items": [
        {
            "allowMultiple": true,
            "dataToolType": "radio_tracking_continuum",
            "defaultConfigSchema": null,
            "description": null,
            "iconUrl": null,
            "id": 0,
            "instances": [
                null
            ],
            "name": "string",
            "version": null
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/DataToolDefinitionWithInstances"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[DataToolDefinitionWithInstances]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PUT /observations/{observation_id}/data-tools/{data_tool_id}

Update Data Tool

Input parameters

Parameter In Type Default Nullable Description
data_tool_id path integer No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

Schema of the request body
{
    "discriminator": {
        "mapping": {
            "cluster_modeling": "#/components/schemas/ClusterModelingToolUpdate",
            "radio_tracking_continuum": "#/components/schemas/RadioTrackingContinuumDataToolUpdate",
            "radio_tracking_spectrum": "#/components/schemas/RadioTrackingSpectrumDataToolUpdate",
            "spectral_composer": "#/components/schemas/SpectralComposerToolUpdate",
            "time_lapse_creator": "#/components/schemas/TimeLapseCreatorToolUpdate",
            "time_series_photometry": "#/components/schemas/TimeSeriesPhotometryToolUpdate",
            "transient_detector": "#/components/schemas/TransientDetectorToolUpdate"
        },
        "propertyName": "dataToolType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/TimeSeriesPhotometryToolUpdate"
        },
        {
            "$ref": "#/components/schemas/SpectralComposerToolUpdate"
        },
        {
            "$ref": "#/components/schemas/TimeLapseCreatorToolUpdate"
        },
        {
            "$ref": "#/components/schemas/ClusterModelingToolUpdate"
        },
        {
            "$ref": "#/components/schemas/TransientDetectorToolUpdate"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingContinuumDataToolUpdate"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingSpectrumDataToolUpdate"
        }
    ],
    "title": "Body"
}

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "cluster_modeling": "#/components/schemas/ClusterModelingTool",
            "radio_tracking_continuum": "#/components/schemas/RadioTrackingContinuumDataTool",
            "radio_tracking_spectrum": "#/components/schemas/RadioTrackingSpectrumDataTool",
            "spectral_composer": "#/components/schemas/SpectralComposerTool",
            "time_lapse_creator": "#/components/schemas/TimeLapseCreatorTool",
            "time_series_photometry": "#/components/schemas/TimeSeriesPhotometryTool",
            "transient_detector": "#/components/schemas/TransientDetectorTool"
        },
        "propertyName": "dataToolType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/TimeSeriesPhotometryTool"
        },
        {
            "$ref": "#/components/schemas/SpectralComposerTool"
        },
        {
            "$ref": "#/components/schemas/TimeLapseCreatorTool"
        },
        {
            "$ref": "#/components/schemas/ClusterModelingTool"
        },
        {
            "$ref": "#/components/schemas/TransientDetectorTool"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingContinuumDataTool"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingSpectrumDataTool"
        }
    ],
    "title": "Response Update Data Tool Observations  Observation Id  Data Tools  Data Tool Id  Put"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/detail

Read Observation Detail

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": "frame",
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": "asap",
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": "single",
    "coverAssetUid": null,
    "coverPreviewFileId": null,
    "coverThumbnailFileId": null,
    "createdOn": "2022-04-13T15:42:05.901Z",
    "creator": null,
    "creatorId": 0,
    "creatorUid": null,
    "currentEpoch": 0,
    "epochCount": 0,
    "galleryItems": null,
    "groupUid": null,
    "id": 0,
    "instrumentIds": null,
    "instrumentMode": "none",
    "interruptLowerPriority": true,
    "interruptRecovery": "resume",
    "isDeleted": true,
    "isPublic": true,
    "lastActivityOn": null,
    "name": "string",
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "observingGrants": null,
    "opticalImagingConfiguration": null,
    "owner": null,
    "ownerId": 0,
    "ownerUid": null,
    "priority": 0,
    "progressFraction": 10.12,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "renderSettings": null,
    "requestTypes": [
        "optical_imaging"
    ],
    "sampleOrdering": "request_major",
    "startAfter": null,
    "status": "active",
    "target": null,
    "targetId": null,
    "targetUid": null,
    "uid": "1f95da4c-ad51-400d-94e3-3fa159dc0f37",
    "updatedOn": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "observation"
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "$ref": "#/components/schemas/CadenceKind",
            "default": "asap"
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "epoch"
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode",
            "default": "single"
        },
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverPreviewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverThumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdOn": {
            "description": "Creation timestamp.",
            "format": "date-time",
            "type": "string"
        },
        "creator": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "creatorId": {
            "description": "User who created it.",
            "type": "integer"
        },
        "creatorUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentEpoch": {
            "default": 0,
            "type": "integer"
        },
        "epochCount": {
            "default": 1,
            "description": "Number of visits. 0 = repeat indefinitely.",
            "type": "integer"
        },
        "galleryItems": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationGalleryItem"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "groupUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "id": {
            "description": "Unique identifier of the observation.",
            "type": "integer"
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "$ref": "#/components/schemas/InstrumentAccessMode"
        },
        "interruptLowerPriority": {
            "description": "Interrupt lower priority.",
            "type": "boolean"
        },
        "interruptRecovery": {
            "$ref": "#/components/schemas/InterruptRecovery",
            "default": "resume"
        },
        "isDeleted": {
            "description": "Flag indicating if deleted.",
            "type": "boolean"
        },
        "isPublic": {
            "type": "boolean"
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "description": "Name of the observation.",
            "type": "string"
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Timestamp of the last observability refresh."
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrants": {
            "anyOf": [
                {
                    "items": {
                        "discriminator": {
                            "mapping": {
                                "externally_managed": "#/components/schemas/ExternallyManagedObservingGrantDetail",
                                "group": "#/components/schemas/GroupObservingGrantDetail",
                                "group_managed": "#/components/schemas/GroupManagedObservingGrantDetail",
                                "member": "#/components/schemas/MemberObservingGrantDetail",
                                "owner": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            "propertyName": "grantType"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MemberObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/ExternallyManagedObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupManagedObservingGrantDetail"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Output"
                },
                {
                    "type": "null"
                }
            ]
        },
        "owner": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "description": "Entity that funds this observation.",
            "type": "integer"
        },
        "ownerUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "type": "integer"
        },
        "progressFraction": {
            "type": "number"
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderSettings": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RenderSettings"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestTypes": {
            "items": {
                "$ref": "#/components/schemas/ObservationType"
            },
            "type": "array"
        },
        "sampleOrdering": {
            "$ref": "#/components/schemas/SampleOrdering",
            "default": "request_major"
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "$ref": "#/components/schemas/ObservationStatus"
        },
        "target": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/Target"
                },
                {
                    "type": "null"
                }
            ]
        },
        "targetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Unique identifier of the target associated with the observation."
        },
        "targetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        },
        "updatedOn": {
            "description": "Update timestamp.",
            "format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "targetId",
        "status",
        "isDeleted",
        "createdOn",
        "updatedOn",
        "name",
        "ownerId",
        "creatorId",
        "interruptLowerPriority",
        "priority",
        "progressFraction",
        "isPublic",
        "instrumentMode"
    ],
    "title": "ObservationDetail",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/edit-seed

Observation Edit Seed

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "instrumentIds": [
        0
    ],
    "isPublic": true,
    "observingGrantIds": [
        0
    ],
    "ownerName": "string",
    "ownerSlug": "string",
    "requestUids": [
        "063ded35-6d99-4750-adb9-048b09a7df3b"
    ],
    "spec": {
        "data": {},
        "schemaKind": "string",
        "schemaVersion": 0
    },
    "status": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Seed for the stateless editor's edit-existing mode (C22 / S1).\n\nThe pristine spec (identity-stripped) plus a parallel ``request_uids``\narray aligned 1:1 with ``spec.data.requests`` — the identity side-channel\nthe editor threads back to ``apply-spec`` so in-place edits preserve\nrequest identity. Built server-side from one ordered pass over the\nobservation's live (non-deleted) requests, so the alignment is\nauthoritative rather than reconstructed client-side from a non-unique\n``order`` field.",
    "properties": {
        "instrumentIds": {
            "items": {
                "type": "integer"
            },
            "type": "array"
        },
        "isPublic": {
            "type": "boolean"
        },
        "observingGrantIds": {
            "items": {
                "type": "integer"
            },
            "type": "array"
        },
        "ownerName": {
            "type": "string"
        },
        "ownerSlug": {
            "type": "string"
        },
        "requestUids": {
            "items": {
                "format": "uuid",
                "type": "string"
            },
            "type": "array"
        },
        "spec": {
            "$ref": "#/components/schemas/SpecEnvelope"
        },
        "status": {
            "type": "string"
        }
    },
    "required": [
        "spec",
        "requestUids",
        "observingGrantIds",
        "ownerSlug",
        "ownerName",
        "status",
        "isPublic",
        "instrumentIds"
    ],
    "title": "ObservationEditSeed",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/events

Read Observation Events

Description

List notification events for this observation, newest first.

Powers the activity panel on the observation detail page. Includes every event row tagged with this observation's id — both the user-subscribable kinds (observation.work_started / observation.completed) and the activity-feed-only ones (observation.task_started / observation.task_completed / observation.work_interrupted).

Empty for observations whose state-change history predates the notification system. The ix_events_observation_id partial index makes this query fast even with a long-lived events table.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "items": [
        {
            "createdOn": "2022-04-13T15:42:05.901Z",
            "dedupKey": null,
            "deviceId": null,
            "eventKind": "observation.work_started",
            "id": 0,
            "message": null,
            "observationId": null,
            "observatoryId": null,
            "observingAccountId": null,
            "operationalConstraintId": null,
            "ownerEntityId": null,
            "payload": {},
            "renderedMessage": null,
            "resourceId": 0,
            "resourceKind": "observation",
            "telescopeId": null
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/EventRead"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[EventRead]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/observability

Read Observation Observability

Input parameters

Parameter In Type Default Nullable Description
extendedInfo query boolean True No
observation_id path string No Observation uid (preferred) or legacy integer id
resolution query number 1 No
span query number 1 No
start query No
telescopeId query No
token query No

Responses

{
    "items": [
        {
            "endsOn": "2022-04-13T15:42:05.901Z",
            "instrumentId": 0,
            "obsId": 0,
            "observable": true,
            "reason": "string",
            "requestId": null,
            "requestType": "optical_imaging",
            "startsOn": "2022-04-13T15:42:05.901Z",
            "telescopeId": null
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservabilityWindow"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservabilityWindow]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/observability-windows

List Observation Observability Windows

Description

Return previously-computed observability windows from the observability_windows table, filtered by a half-open time-range overlap predicate.

Unlike /observability, this endpoint does not recompute the target's visibility — it's a thin DB read. Use it from clients that need to render windows visible in a particular pan range (Gantt chart, scheduling-grid UIs); use /observability when the caller needs a fresh compute over an arbitrary span (e.g. probing a future eligibility window before commit).

Input parameters

Parameter In Type Default Nullable Description
endsAfter query No
observable query No
observation_id path string No Observation uid (preferred) or legacy integer id
requestType query No
startsBefore query No
telescopeId query No
token query No

Responses

{
    "items": [
        {
            "endsOn": "2022-04-13T15:42:05.901Z",
            "instrumentId": 0,
            "obsId": 0,
            "observable": true,
            "reason": "string",
            "requestId": null,
            "requestType": "optical_imaging",
            "startsOn": "2022-04-13T15:42:05.901Z",
            "telescopeId": null
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservabilityWindow"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservabilityWindow]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/observing-plans-preview

Get Observing Plans Preview

Input parameters

Parameter In Type Default Nullable Description
instrument_ids query array No List of instrument IDs to generate observing plans for
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "items": [
        {
            "allRequestsObservable": true,
            "anyRequestsObservable": true,
            "constraints": [
                "string"
            ],
            "instrument": null,
            "isObservable": true,
            "legendColor": "string",
            "observabilityWindows": [
                {
                    "endsOn": "2022-04-13T15:42:05.901Z",
                    "instrumentId": 0,
                    "obsId": 0,
                    "observable": true,
                    "reason": "string",
                    "requestId": null,
                    "requestType": "optical_imaging",
                    "startsOn": "2022-04-13T15:42:05.901Z",
                    "telescopeId": null
                }
            ],
            "observationId": 0,
            "opticalImagingConfigurationPlan": null,
            "radioMappingConfigurationPlan": null,
            "radioTrackingConfigurationPlan": null,
            "requestPlanMap": {},
            "telescope": {
                "antennaIds": null,
                "antennas": [
                    {
                        "apertureM": 10.12,
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": [
                            {
                                "action": "keep_enclosure_closed",
                                "deviceId": 0,
                                "deviceUid": null,
                                "id": null,
                                "operationalConstraintId": 0,
                                "priority": 0,
                                "triggerOnStabilizing": true,
                                "triggerOnUnknown": true,
                                "triggerOnUnsafe": true,
                                "uid": "71a766a3-0815-419d-addf-b322b1d49b8c"
                            }
                        ],
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "b3407edf-1713-48ca-8221-51854f858006"
                    }
                ],
                "calibrationObservingAccountId": null,
                "cameraIds": null,
                "cameras": [
                    {
                        "arrayHeight": 0,
                        "arrayWidth": 0,
                        "coolerIdleTimeoutSec": 10.12,
                        "coolerPolicy": "always_on",
                        "coolerPrestartLeadTimeSec": 10.12,
                        "defaultReadoutMode": null,
                        "defaultReadoutModeUid": null,
                        "deviceType": "string",
                        "fullWellCapacityElectrons": 10.12,
                        "hasElectronicShutter": true,
                        "id": null,
                        "imageId": null,
                        "isColor": true,
                        "isGlobalShutter": true,
                        "manufacturer": null,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "pixelSizeUm": 10.12,
                        "readoutModes": null,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "temperatureSetpointC": null,
                        "temperatureSetpointToleranceC": null,
                        "uid": "76ec54c5-1649-48df-aa8b-f6af3d97335a"
                    }
                ],
                "description": null,
                "deviceIds": null,
                "elevationM": 10.12,
                "enclosure": null,
                "enclosureId": null,
                "enclosureUid": null,
                "filterWheelIds": null,
                "filterWheels": [
                    {
                        "deletedPositions": null,
                        "deviceType": "string",
                        "filterShape": null,
                        "filterSizeMm": null,
                        "filterWheelPositionIds": null,
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "positions": [
                            {
                                "filterIds": [
                                    "string"
                                ],
                                "filterWheelId": 0,
                                "filterWheelUid": null,
                                "filters": [
                                    {
                                        "bandpassNm": null,
                                        "centralWavelengthNm": null,
                                        "filterSpecifierType": "string",
                                        "flatExposureScaler": null,
                                        "flatExposureSunElevationCoeffPerDeg": null,
                                        "id": "string",
                                        "isModifier": null,
                                        "throughputFraction": null
                                    }
                                ],
                                "flatExposureScaler": null,
                                "focusOffset": null,
                                "id": null,
                                "isActive": true,
                                "isDeleted": true,
                                "label": null,
                                "position": 0,
                                "uid": "f110300e-44d0-42dc-84de-53993ae8a9de"
                            }
                        ],
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "5e3cfdfa-5aee-4ce3-9e74-555d746fd2a6"
                    }
                ],
                "focuserIds": null,
                "focusers": [
                    {
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "maxPosition": 0,
                        "minPosition": 0,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "stepSize": 10.12,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "temperatureCompensated": true,
                        "uid": "f068ad0a-9bf6-478a-9b50-44a25e4a2d3c"
                    }
                ],
                "galleryItemIds": null,
                "galleryItems": null,
                "iauCode": null,
                "id": null,
                "imageId": null,
                "instrumentIds": null,
                "instruments": [
                    null
                ],
                "ipCameraIds": null,
                "ipCameras": [
                    {
                        "id": null,
                        "isPrimary": true,
                        "isPublic": true,
                        "lastSeen": null,
                        "name": "string",
                        "observatoryId": null,
                        "onvifHost": null,
                        "order": 0,
                        "pose": null,
                        "ptz": true,
                        "role": "pier",
                        "streams": [
                            {
                                "active": true,
                                "cameraId": 0,
                                "expiresSec": null,
                                "id": 0,
                                "kind": "rtsp",
                                "quality": null
                            }
                        ],
                        "telescopeId": null,
                        "uid": "ae242548-312d-4168-93da-2166aec074a1",
                        "vendor": null
                    }
                ],
                "isAvailable": true,
                "isPublic": true,
                "latitudeDeg": 10.12,
                "localHorizon": null,
                "location": "string",
                "longitudeDeg": 10.12,
                "mount": null,
                "mountId": null,
                "mountUid": null,
                "name": "string",
                "observatory": null,
                "observatoryId": 0,
                "observatoryUid": null,
                "otaIds": null,
                "otas": [
                    {
                        "apertureM": 10.12,
                        "deviceType": "string",
                        "focalLengthM": 10.12,
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "offsetScalar": null,
                        "offsetXM": null,
                        "offsetYM": null,
                        "offsetZM": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "opticalDesign": null,
                        "ownerId": 0,
                        "parentOta": null,
                        "parentOtaId": null,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "7bfb2146-eb3a-4720-88f8-7ebe01346ccc"
                    }
                ],
                "owner": null,
                "ownerId": 0,
                "publicLatitudeDeg": null,
                "publicLongitudeDeg": null,
                "radioBackendIds": null,
                "radioBackends": [
                    {
                        "description": null,
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "e73c7878-47a9-4c7c-a0e1-d0f30f17a2da"
                    }
                ],
                "receiverIds": null,
                "receivers": [
                    {
                        "attenuationMaxDb": null,
                        "attenuationMinDb": null,
                        "attenuationStepDb": null,
                        "availableNoiseDiodeLevels": 0,
                        "band": null,
                        "deviceType": "string",
                        "feeds": [
                            {
                                "feedBackendConnections": [
                                    {
                                        "id": 0,
                                        "isActive": true,
                                        "radioBackendId": 0,
                                        "receiverFeedId": 0
                                    }
                                ],
                                "id": 0,
                                "isActive": true,
                                "offsetXArcsec": 10.12,
                                "offsetYArcsec": 10.12,
                                "receiverId": 0
                            }
                        ],
                        "id": 0,
                        "imageId": null,
                        "isAvailable": true,
                        "localOscillatorMaxFrequencyMhz": null,
                        "localOscillatorMinFrequencyMhz": null,
                        "manufacturer": null,
                        "maxFrequencyMhz": 10.12,
                        "minFrequencyMhz": 10.12,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "polarization": "none",
                        "radioFilters": [
                            {
                                "id": 0,
                                "maxFrequencyMhz": 10.12,
                                "minFrequencyMhz": 10.12,
                                "name": null,
                                "receiverId": 0
                            }
                        ],
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "temperatureSetpointK": null,
                        "temperatureSetpointToleranceK": null,
                        "uid": "cde14f07-5513-41c4-ace8-909365021da8"
                    }
                ],
                "rotatorIds": null,
                "rotators": [
                    {
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "29c584be-c123-46df-93cb-7bce5bbb7c15"
                    }
                ],
                "shortName": null,
                "slug": "string",
                "uid": "e66a8198-8344-4764-80b5-7a4f9c67a98a"
            }
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservingPlan"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservingPlan]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/observing-plans/

Get Observing Plans

Input parameters

Parameter In Type Default Nullable Description
instrument_ids query array No List of instrument IDs to generate observing plans for
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "items": [
        {
            "allRequestsObservable": true,
            "anyRequestsObservable": true,
            "constraints": [
                "string"
            ],
            "instrument": null,
            "isObservable": true,
            "legendColor": "string",
            "observabilityWindows": [
                {
                    "endsOn": "2022-04-13T15:42:05.901Z",
                    "instrumentId": 0,
                    "obsId": 0,
                    "observable": true,
                    "reason": "string",
                    "requestId": null,
                    "requestType": "optical_imaging",
                    "startsOn": "2022-04-13T15:42:05.901Z",
                    "telescopeId": null
                }
            ],
            "observationId": 0,
            "opticalImagingConfigurationPlan": null,
            "radioMappingConfigurationPlan": null,
            "radioTrackingConfigurationPlan": null,
            "requestPlanMap": {},
            "telescope": {
                "antennaIds": null,
                "antennas": [
                    {
                        "apertureM": 10.12,
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": [
                            {
                                "action": "keep_enclosure_closed",
                                "deviceId": 0,
                                "deviceUid": null,
                                "id": null,
                                "operationalConstraintId": 0,
                                "priority": 0,
                                "triggerOnStabilizing": true,
                                "triggerOnUnknown": true,
                                "triggerOnUnsafe": true,
                                "uid": "54a1d039-e1dd-40e0-bb93-57d37b67893d"
                            }
                        ],
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "ebe70b9f-1635-4e68-b89e-6f5e291c543d"
                    }
                ],
                "calibrationObservingAccountId": null,
                "cameraIds": null,
                "cameras": [
                    {
                        "arrayHeight": 0,
                        "arrayWidth": 0,
                        "coolerIdleTimeoutSec": 10.12,
                        "coolerPolicy": "always_on",
                        "coolerPrestartLeadTimeSec": 10.12,
                        "defaultReadoutMode": null,
                        "defaultReadoutModeUid": null,
                        "deviceType": "string",
                        "fullWellCapacityElectrons": 10.12,
                        "hasElectronicShutter": true,
                        "id": null,
                        "imageId": null,
                        "isColor": true,
                        "isGlobalShutter": true,
                        "manufacturer": null,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "pixelSizeUm": 10.12,
                        "readoutModes": null,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "temperatureSetpointC": null,
                        "temperatureSetpointToleranceC": null,
                        "uid": "15ab198e-9e7f-4867-bbd7-864f8a1c4707"
                    }
                ],
                "description": null,
                "deviceIds": null,
                "elevationM": 10.12,
                "enclosure": null,
                "enclosureId": null,
                "enclosureUid": null,
                "filterWheelIds": null,
                "filterWheels": [
                    {
                        "deletedPositions": null,
                        "deviceType": "string",
                        "filterShape": null,
                        "filterSizeMm": null,
                        "filterWheelPositionIds": null,
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "positions": [
                            {
                                "filterIds": [
                                    "string"
                                ],
                                "filterWheelId": 0,
                                "filterWheelUid": null,
                                "filters": [
                                    {
                                        "bandpassNm": null,
                                        "centralWavelengthNm": null,
                                        "filterSpecifierType": "string",
                                        "flatExposureScaler": null,
                                        "flatExposureSunElevationCoeffPerDeg": null,
                                        "id": "string",
                                        "isModifier": null,
                                        "throughputFraction": null
                                    }
                                ],
                                "flatExposureScaler": null,
                                "focusOffset": null,
                                "id": null,
                                "isActive": true,
                                "isDeleted": true,
                                "label": null,
                                "position": 0,
                                "uid": "490ccd23-3eb6-40e7-b80a-183930e68ea3"
                            }
                        ],
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "8025013a-0251-4055-961b-6630f59edb8d"
                    }
                ],
                "focuserIds": null,
                "focusers": [
                    {
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "maxPosition": 0,
                        "minPosition": 0,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "stepSize": 10.12,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "temperatureCompensated": true,
                        "uid": "ec508105-ec64-4a32-b4c9-851c3abc110c"
                    }
                ],
                "galleryItemIds": null,
                "galleryItems": null,
                "iauCode": null,
                "id": null,
                "imageId": null,
                "instrumentIds": null,
                "instruments": [
                    null
                ],
                "ipCameraIds": null,
                "ipCameras": [
                    {
                        "id": null,
                        "isPrimary": true,
                        "isPublic": true,
                        "lastSeen": null,
                        "name": "string",
                        "observatoryId": null,
                        "onvifHost": null,
                        "order": 0,
                        "pose": null,
                        "ptz": true,
                        "role": "pier",
                        "streams": [
                            {
                                "active": true,
                                "cameraId": 0,
                                "expiresSec": null,
                                "id": 0,
                                "kind": "rtsp",
                                "quality": null
                            }
                        ],
                        "telescopeId": null,
                        "uid": "68adb84b-82f5-415c-82b7-f5569ed290ae",
                        "vendor": null
                    }
                ],
                "isAvailable": true,
                "isPublic": true,
                "latitudeDeg": 10.12,
                "localHorizon": null,
                "location": "string",
                "longitudeDeg": 10.12,
                "mount": null,
                "mountId": null,
                "mountUid": null,
                "name": "string",
                "observatory": null,
                "observatoryId": 0,
                "observatoryUid": null,
                "otaIds": null,
                "otas": [
                    {
                        "apertureM": 10.12,
                        "deviceType": "string",
                        "focalLengthM": 10.12,
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "model": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "offsetScalar": null,
                        "offsetXM": null,
                        "offsetYM": null,
                        "offsetZM": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "opticalDesign": null,
                        "ownerId": 0,
                        "parentOta": null,
                        "parentOtaId": null,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "34ef4389-4256-44f0-9467-ce3f6b57d810"
                    }
                ],
                "owner": null,
                "ownerId": 0,
                "publicLatitudeDeg": null,
                "publicLongitudeDeg": null,
                "radioBackendIds": null,
                "radioBackends": [
                    {
                        "description": null,
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "f26b0f87-430b-4ef0-8768-8a732518254c"
                    }
                ],
                "receiverIds": null,
                "receivers": [
                    {
                        "attenuationMaxDb": null,
                        "attenuationMinDb": null,
                        "attenuationStepDb": null,
                        "availableNoiseDiodeLevels": 0,
                        "band": null,
                        "deviceType": "string",
                        "feeds": [
                            {
                                "feedBackendConnections": [
                                    {
                                        "id": 0,
                                        "isActive": true,
                                        "radioBackendId": 0,
                                        "receiverFeedId": 0
                                    }
                                ],
                                "id": 0,
                                "isActive": true,
                                "offsetXArcsec": 10.12,
                                "offsetYArcsec": 10.12,
                                "receiverId": 0
                            }
                        ],
                        "id": 0,
                        "imageId": null,
                        "isAvailable": true,
                        "localOscillatorMaxFrequencyMhz": null,
                        "localOscillatorMinFrequencyMhz": null,
                        "manufacturer": null,
                        "maxFrequencyMhz": 10.12,
                        "minFrequencyMhz": 10.12,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "polarization": "none",
                        "radioFilters": [
                            {
                                "id": 0,
                                "maxFrequencyMhz": 10.12,
                                "minFrequencyMhz": 10.12,
                                "name": null,
                                "receiverId": 0
                            }
                        ],
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "temperatureSetpointK": null,
                        "temperatureSetpointToleranceK": null,
                        "uid": "36fc3349-70f4-4338-9362-a1910013be19"
                    }
                ],
                "rotatorIds": null,
                "rotators": [
                    {
                        "deviceType": "string",
                        "id": null,
                        "imageId": null,
                        "manufacturer": null,
                        "modelId": null,
                        "name": null,
                        "observatoryId": null,
                        "observatoryUid": null,
                        "operationalConstraintActions": null,
                        "operationalConstraintIds": null,
                        "ownerId": 0,
                        "serialNumber": null,
                        "telescopeId": null,
                        "telescopeUid": null,
                        "uid": "c27b7c82-50da-42ad-8a01-73b0702df168"
                    }
                ],
                "shortName": null,
                "slug": "string",
                "uid": "bb16c580-441f-456d-9123-19109eba6fca"
            }
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservingPlan"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservingPlan]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/processing-settings

Get Observation Processing Settings

Description

The observation's processing-pipeline settings.

Returns both halves, because a settings UI needs both and one cannot be derived from the other:

  • override — exactly what is stored: only the fields the owner explicitly set (§4). This is what a modified-from-default indicator and a per-field reset are built on. Null means nothing has been overridden.
  • effective — the override deep-merged onto platform defaults, which is what the pipeline will actually run under.

Reading requires only permission to view the observation; writing requires modify_observation.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "effective": {
        "optical": {
            "fieldCal": {
                "catalogs": [
                    "string"
                ],
                "maxSnr": null,
                "maxStars": null,
                "minSnr": 10.12,
                "sourceMatchTol": 10.12,
                "variableCheckTol": 10.12
            },
            "fieldCalSourcePolicy": {
                "autoSatLevel": true,
                "clipHi": 10.12,
                "clipLo": 10.12,
                "discardSaturated": 0,
                "limit": null,
                "maxEllipticity": 10.12,
                "maxFwhm": 10.12,
                "maxSources": 0,
                "minFwhm": 10.12,
                "satLevel": 10.12
            },
            "photometry": {
                "a": null,
                "aInPx": null,
                "aOutPx": null,
                "b": null,
                "bOutPx": null,
                "centroidRadius": 10.12,
                "mode": "string",
                "rejectBkgOutliers": true,
                "theta": 10.12,
                "thetaOutDeg": null
            },
            "photometrySourcePolicy": null,
            "reduction": {
                "masterMaxAgeSec": null
            },
            "solve": {
                "allSkyFallback": true
            },
            "sourceDetection": {
                "bkFilterSize": 0,
                "bkSize": 10.12,
                "centroid": true,
                "clean": 10.12,
                "deblend": true,
                "deblendContrast": 10.12,
                "deblendLevels": 0,
                "downsample": 0,
                "fwhm": 10.12,
                "minPixels": 0,
                "ratio": 10.12,
                "theta": 10.12,
                "threshold": 10.12
            },
            "stages": {
                "fieldCalibration": true,
                "photometry": true,
                "reduction": true,
                "wcsSolve": true
            },
            "wcsSourcePolicy": null
        },
        "radio": {},
        "schemaVersion": 0
    },
    "override": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "What an observation's processing settings are, and what the owner chose.\n\nBoth halves, because a settings UI needs both and neither derives from the\nother. ``effective`` alone cannot say whether 97.5 was chosen or inherited —\nwhich is exactly the ambiguity sparse storage exists to remove (§4) — and\n``override`` alone cannot say what will run.",
    "properties": {
        "effective": {
            "$ref": "#/components/schemas/ProcessingPipelineSettings-Output",
            "description": "The override deep-merged onto platform defaults — what the pipeline will actually run under."
        },
        "override": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Exactly what is stored: only the fields the owner explicitly set. Null means nothing has been overridden and the observation tracks platform defaults. This is what a modified-from-default indicator and a per-field reset are built on."
        }
    },
    "required": [
        "effective"
    ],
    "title": "ObservationProcessingSettings",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PATCH /observations/{observation_id}/processing-settings

Update Observation Processing Settings

Description

Replace the observation's processing-settings override, and re-process.

The body is the WHOLE override, not a delta onto the stored one: what you send is what is stored. Resetting a field to the platform default therefore means omitting it, which keeps "what did the owner choose" answerable from the stored document alone — the property §4 exists to protect and that a delta-merge would destroy.

Stored SPARSELY: only the fields present in the request body. The typed body is what puts this in OpenAPI and the TS SDK, but its model_dump() would fill every unset field with today's defaults, which is exactly the whole-document replacement §4 reverses. So the raw request JSON is what is persisted, after being validated through the model.

Unknown keys are rejected with 422 and the offending paths (§7.3). A typo in a settings payload that silently no-ops is indistinguishable, to the owner, from a setting that does not work. This is checked against the raw body because Pydantic has already dropped unknown keys by the time body is parsed — and it is checked HERE rather than by putting extra="forbid" on the models, which would apply to the read path too and turn a removed field in an old stamped config into a runner crash.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

{
    "optical": {
        "fieldCal": {
            "catalogs": [
                "string"
            ],
            "maxSnr": null,
            "maxStars": null,
            "minSnr": 10.12,
            "sourceMatchTol": 10.12,
            "variableCheckTol": 10.12
        },
        "fieldCalSourcePolicy": {
            "autoSatLevel": true,
            "clipHi": 10.12,
            "clipLo": 10.12,
            "discardSaturated": 0,
            "limit": null,
            "maxEllipticity": 10.12,
            "maxFwhm": 10.12,
            "maxSources": 0,
            "minFwhm": 10.12,
            "satLevel": 10.12
        },
        "photometry": {
            "a": null,
            "aInPx": null,
            "aOutPx": null,
            "b": null,
            "bOutPx": null,
            "centroidRadius": 10.12,
            "mode": "string",
            "rejectBkgOutliers": true,
            "theta": 10.12,
            "thetaOutDeg": null
        },
        "photometrySourcePolicy": null,
        "reduction": {
            "masterMaxAgeSec": null
        },
        "solve": {
            "allSkyFallback": true
        },
        "sourceDetection": {
            "bkFilterSize": 0,
            "bkSize": 10.12,
            "centroid": true,
            "clean": 10.12,
            "deblend": true,
            "deblendContrast": 10.12,
            "deblendLevels": 0,
            "downsample": 0,
            "fwhm": 10.12,
            "minPixels": 0,
            "ratio": 10.12,
            "theta": 10.12,
            "threshold": 10.12
        },
        "stages": {
            "fieldCalibration": true,
            "photometry": true,
            "reduction": true,
            "wcsSolve": true
        },
        "wcsSourcePolicy": null
    },
    "radio": {},
    "schemaVersion": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "One owner override document for an observation's processing pipeline.\n\n``Observation.processing_settings`` holds a SPARSE override of this whole\ndocument. An optical-only owner stores ``{\"optical\": {...}}``.\n\nOne document rather than a column (or a document) per instrument family: an\nobservation can genuinely contain assets whose roles span both families, and\na mixed observation should be edited in one editor. The alternative pushes\nthe family split into the API, the UI routing and the permission checks to\nsave a key in a JSON document.\n\nThe unified document does NOT mean a unified stamp. A run records the hash\nof ITS asset's family section only, so editing radio settings cannot move an\noptical run's hash and re-process optical assets. See §5.2.",
    "properties": {
        "optical": {
            "$ref": "#/components/schemas/OwnerOpticalProcessingSettings"
        },
        "radio": {
            "$ref": "#/components/schemas/OwnerRadioProcessingSettings"
        },
        "schemaVersion": {
            "default": 1,
            "description": "Version of this document's shape, read by the migrator chain.",
            "type": "integer"
        }
    },
    "title": "ProcessingPipelineSettings",
    "type": "object"
}

Responses

{
    "effective": {
        "optical": {
            "fieldCal": {
                "catalogs": [
                    "string"
                ],
                "maxSnr": null,
                "maxStars": null,
                "minSnr": 10.12,
                "sourceMatchTol": 10.12,
                "variableCheckTol": 10.12
            },
            "fieldCalSourcePolicy": {
                "autoSatLevel": true,
                "clipHi": 10.12,
                "clipLo": 10.12,
                "discardSaturated": 0,
                "limit": null,
                "maxEllipticity": 10.12,
                "maxFwhm": 10.12,
                "maxSources": 0,
                "minFwhm": 10.12,
                "satLevel": 10.12
            },
            "photometry": {
                "a": null,
                "aInPx": null,
                "aOutPx": null,
                "b": null,
                "bOutPx": null,
                "centroidRadius": 10.12,
                "mode": "string",
                "rejectBkgOutliers": true,
                "theta": 10.12,
                "thetaOutDeg": null
            },
            "photometrySourcePolicy": null,
            "reduction": {
                "masterMaxAgeSec": null
            },
            "solve": {
                "allSkyFallback": true
            },
            "sourceDetection": {
                "bkFilterSize": 0,
                "bkSize": 10.12,
                "centroid": true,
                "clean": 10.12,
                "deblend": true,
                "deblendContrast": 10.12,
                "deblendLevels": 0,
                "downsample": 0,
                "fwhm": 10.12,
                "minPixels": 0,
                "ratio": 10.12,
                "theta": 10.12,
                "threshold": 10.12
            },
            "stages": {
                "fieldCalibration": true,
                "photometry": true,
                "reduction": true,
                "wcsSolve": true
            },
            "wcsSourcePolicy": null
        },
        "radio": {},
        "schemaVersion": 0
    },
    "override": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "What an observation's processing settings are, and what the owner chose.\n\nBoth halves, because a settings UI needs both and neither derives from the\nother. ``effective`` alone cannot say whether 97.5 was chosen or inherited —\nwhich is exactly the ambiguity sparse storage exists to remove (§4) — and\n``override`` alone cannot say what will run.",
    "properties": {
        "effective": {
            "$ref": "#/components/schemas/ProcessingPipelineSettings-Output",
            "description": "The override deep-merged onto platform defaults — what the pipeline will actually run under."
        },
        "override": {
            "anyOf": [
                {
                    "additionalProperties": true,
                    "type": "object"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Exactly what is stored: only the fields the owner explicitly set. Null means nothing has been overridden and the observation tracks platform defaults. This is what a modified-from-default indicator and a per-field reset are built on."
        }
    },
    "required": [
        "effective"
    ],
    "title": "ObservationProcessingSettings",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observations/{observation_id}/reprocess

Reprocess Observation

Description

Re-process this observation's assets under the current configuration.

The explicit half of the reprocess-admission decision (PIPELINE_CLEANUP_DESIGN.md §8): a runner-version bump does NOT re-run the archive — re-processing existing results happens when someone who can edit the observation asks for it, here, or implicitly by saving a settings change. That keeps the cost of a platform change proportional to what is actually looked at, and it is what makes a tight iterate loop possible: change a default, re-process a handful of known observations, compare.

Same mechanism as a settings save — every capture asset is marked dirty and the scheduler drains the flag with a short debounce — so "save settings" and "reprocess now" cannot behave differently by accident. Derived assets are never re-processed (they are outputs); the scheduler's own eligibility filters enforce that and everything else (transferred file, valid role), which is why the receipt counts assets MARKED rather than runs created.

Requires modify permission: a re-run replaces the observation's processed products (§9.1 supersession), which is an editor's call, not a viewer's.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "assetsMarked": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Receipt for an explicit re-process request.\n\nThe count is assets *marked*, not runs created: the scheduler drains the\ndirty flag on its own cadence (with the same short debounce a settings save\ngets), so the work happens moments later, not inside this request.",
    "properties": {
        "assetsMarked": {
            "description": "How many of the observation's assets were marked for re-processing.",
            "type": "integer"
        }
    },
    "required": [
        "assetsMarked"
    ],
    "title": "ObservationReprocessReceipt",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/requests

Read Observation Requests

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
sortBy query No
token query No

Request body

{
    "filterObservationId": null,
    "id": null,
    "isDeleted": null,
    "status": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "filterObservationId": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Filterobservationid"
        },
        "id": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "isDeleted": {
            "anyOf": [
                {
                    "items": {
                        "type": "boolean"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Isdeleted"
        },
        "status": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationRequestStatus"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Status"
        }
    },
    "title": "Body_read_observation_requests_observations__observation_id__requests_get",
    "type": "object"
}

Responses

{
    "items": [
        null
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "discriminator": {
                    "mapping": {
                        "optical_imaging": "#/components/schemas/OpticalImagingRequestSummary",
                        "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestSummary",
                        "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestSummary",
                        "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestSummary",
                        "radio_mapping": "#/components/schemas/RadioMappingRequestSummary",
                        "radio_tracking": "#/components/schemas/RadioTrackingRequestSummary"
                    },
                    "propertyName": "requestType"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/OpticalImagingRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/RadioTrackingRequestSummary"
                    },
                    {
                        "$ref": "#/components/schemas/RadioMappingRequestSummary"
                    }
                ]
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[Annotated[Union[OpticalImagingRequestSummary, OpticalImagingBiasCalibrationRequestSummary, OpticalImagingDarkCalibrationRequestSummary, OpticalImagingFlatCalibrationRequestSummary, RadioTrackingRequestSummary, RadioMappingRequestSummary], FieldInfo(annotation=NoneType, required=True, discriminator='request_type')]]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/requests/{request_id}

Read Observation Request

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
request_id path integer No
token query No

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequest",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequest",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequest",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequest",
            "radio_mapping": "#/components/schemas/RadioMappingRequest",
            "radio_tracking": "#/components/schemas/RadioTrackingRequest"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequest"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequest"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequest"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequest"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequest"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequest"
        }
    ],
    "title": "Response Read Observation Request Observations  Observation Id  Requests  Request Id  Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/requests/{request_id}/detail

Read Observation Request Detail

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
request_id path integer No
token query No

Responses

Schema of the response body
{
    "discriminator": {
        "mapping": {
            "optical_imaging": "#/components/schemas/OpticalImagingRequestDetail",
            "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail",
            "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail",
            "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail",
            "radio_mapping": "#/components/schemas/RadioMappingRequestDetail",
            "radio_tracking": "#/components/schemas/RadioTrackingRequestDetail"
        },
        "propertyName": "requestType"
    },
    "oneOf": [
        {
            "$ref": "#/components/schemas/OpticalImagingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioTrackingRequestDetail"
        },
        {
            "$ref": "#/components/schemas/RadioMappingRequestDetail"
        }
    ],
    "title": "Response Read Observation Request Detail Observations  Observation Id  Requests  Request Id  Detail Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/requests/{request_id}/observing-plans-preview

Get Observing Request Plan Preview

Input parameters

Parameter In Type Default Nullable Description
instrument_ids query array No List of instrument IDs to generate observing plans for
observation_id path string No Observation uid (preferred) or legacy integer id
request_id path integer No
token query No

Responses

{
    "items": [
        null
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "discriminator": {
                    "mapping": {
                        "optical_imaging": "#/components/schemas/OpticalImagingRequestPlan",
                        "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationRequestPlan",
                        "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationRequestPlan",
                        "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationRequestPlan",
                        "radio_mapping": "#/components/schemas/RadioMappingRequestPlan",
                        "radio_tracking": "#/components/schemas/RadioTrackingRequestPlan"
                    },
                    "propertyName": "requestType"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/OpticalImagingRequestPlan"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingBiasCalibrationRequestPlan"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingDarkCalibrationRequestPlan"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingFlatCalibrationRequestPlan"
                    },
                    {
                        "$ref": "#/components/schemas/RadioTrackingRequestPlan"
                    },
                    {
                        "$ref": "#/components/schemas/RadioMappingRequestPlan"
                    }
                ]
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[Annotated[Union[OpticalImagingRequestPlan, OpticalImagingBiasCalibrationRequestPlan, OpticalImagingDarkCalibrationRequestPlan, OpticalImagingFlatCalibrationRequestPlan, RadioTrackingRequestPlan, RadioMappingRequestPlan], FieldInfo(annotation=NoneType, required=True, discriminator='request_type')]]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/results

Read Observation Results

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
page query integer 1 No
size query integer 25 No
token query No

Responses

{
    "items": [
        {
            "assetsRevision": 0,
            "copiesMode": "single",
            "copyIndex": 0,
            "currentProcessingRun": null,
            "currentProcessingRunId": null,
            "dataProductStatus": "PENDING",
            "dirtyFromRevision": null,
            "epochIndex": 0,
            "fulfilledOn": null,
            "fulfillmentStatus": "pending_dispatch",
            "id": 0,
            "instrumentId": null,
            "lastBuiltRevision": null,
            "nextEligibleRunAt": null,
            "notBefore": null,
            "observationId": 0,
            "requestId": 0,
            "sampleIndex": 0,
            "tasks": [
                null
            ],
            "uid": "00131a39-a3da-4061-96ef-8a09d433d5f1"
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/ObservationResultDetail"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[ObservationResultDetail]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/results/{result_uid}

Read Observation Result

Description

Fetch a single result deliverable by uid.

Backs the result page (…/observations/:id/results/:resultUid — OBSERVATION_RESULT_SURFACES_DESIGN.md §7): same shape as one list item, so the page and the results list share their flattening. uid-addressed (never the int id), scoped to the observation so a uid from another observation 404s rather than leaking across permission boundaries.

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
result_uid path string No
token query No

Responses

{
    "assetsRevision": 0,
    "copiesMode": "single",
    "copyIndex": 0,
    "currentProcessingRun": null,
    "currentProcessingRunId": null,
    "dataProductStatus": "PENDING",
    "dirtyFromRevision": null,
    "epochIndex": 0,
    "fulfilledOn": null,
    "fulfillmentStatus": "pending_dispatch",
    "id": 0,
    "instrumentId": null,
    "lastBuiltRevision": null,
    "nextEligibleRunAt": null,
    "notBefore": null,
    "observationId": 0,
    "requestId": 0,
    "sampleIndex": 0,
    "tasks": [
        null
    ],
    "uid": "4b02e030-4690-4d9c-862f-1a0182b33a21"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "assetsRevision": {
            "type": "integer"
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode"
        },
        "copyIndex": {
            "type": "integer"
        },
        "currentProcessingRun": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationResultProcessingRun"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentProcessingRunId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "dataProductStatus": {
            "$ref": "#/components/schemas/DataProductStatus"
        },
        "dirtyFromRevision": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "epochIndex": {
            "type": "integer"
        },
        "fulfilledOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "fulfillmentStatus": {
            "$ref": "#/components/schemas/ResultFulfillmentStatus"
        },
        "id": {
            "type": "integer"
        },
        "instrumentId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "lastBuiltRevision": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "nextEligibleRunAt": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "notBefore": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observationId": {
            "type": "integer"
        },
        "requestId": {
            "type": "integer"
        },
        "sampleIndex": {
            "type": "integer"
        },
        "tasks": {
            "default": [],
            "items": {
                "discriminator": {
                    "mapping": {
                        "optical_imaging": "#/components/schemas/OpticalImagingTask",
                        "optical_imaging_bias_calibration": "#/components/schemas/OpticalImagingBiasCalibrationTask",
                        "optical_imaging_dark_calibration": "#/components/schemas/OpticalImagingDarkCalibrationTask",
                        "optical_imaging_flat_calibration": "#/components/schemas/OpticalImagingFlatCalibrationTask",
                        "radio_mapping": "#/components/schemas/RadioMappingTask",
                        "radio_tracking": "#/components/schemas/RadioTrackingTask"
                    },
                    "propertyName": "taskType"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/OpticalImagingTask"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingBiasCalibrationTask"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingDarkCalibrationTask"
                    },
                    {
                        "$ref": "#/components/schemas/OpticalImagingFlatCalibrationTask"
                    },
                    {
                        "$ref": "#/components/schemas/RadioTrackingTask"
                    },
                    {
                        "$ref": "#/components/schemas/RadioMappingTask"
                    }
                ]
            },
            "type": "array"
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "observationId",
        "requestId",
        "epochIndex",
        "sampleIndex",
        "copyIndex",
        "copiesMode",
        "fulfillmentStatus",
        "dataProductStatus",
        "assetsRevision"
    ],
    "title": "ObservationResultDetail",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observations/{observation_id}/results/{result_uid}/reprocess

Reprocess Observation Result

Description

Re-process ONE result's frames under the current configuration.

The result page's scoped sibling of reprocess_observation (OBSERVATION_RESULT_SURFACES_DESIGN.md §7: reprocess controls live on the result page): only the assets captured for this deliverable's tasks are marked dirty, so re-examining one epoch/sample doesn't re-run a hundred-cell observation. Everything else is identical — same dirty flag, same debounce, same scheduler eligibility — and when the reruns land, their contributions mark the result dirty again, so the deliverable rebuilds without a separate trigger.

Requires modify permission, like the observation-wide action: a re-run replaces processed products (§9.1 supersession).

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
result_uid path string No
token query No

Responses

{
    "assetsMarked": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Receipt for an explicit re-process request.\n\nThe count is assets *marked*, not runs created: the scheduler drains the\ndirty flag on its own cadence (with the same short debounce a settings save\ngets), so the work happens moments later, not inside this request.",
    "properties": {
        "assetsMarked": {
            "description": "How many of the observation's assets were marked for re-processing.",
            "type": "integer"
        }
    },
    "required": [
        "assetsMarked"
    ],
    "title": "ObservationReprocessReceipt",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/spec

Export Observation Spec

Description

Export a live observation as a portable, versioned ObservationSpec envelope (C3) — backs the editor's "export spec" panel.

Read-only; strips identity / ownership / funding / lifecycle. The include_* query flags let the caller share a subset (e.g. just the requests + configuration without a target).

Input parameters

Parameter In Type Default Nullable Description
include_configuration query boolean True No
include_requests query boolean True No
include_target query boolean True No
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Responses

{
    "data": {},
    "schemaKind": "string",
    "schemaVersion": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "`{schemaKind, schemaVersion, data}` wrapper around a versioned payload.",
    "properties": {
        "data": {
            "additionalProperties": true,
            "type": "object"
        },
        "schemaKind": {
            "type": "string"
        },
        "schemaVersion": {
            "type": "integer"
        }
    },
    "required": [
        "schemaKind",
        "schemaVersion",
        "data"
    ],
    "title": "SpecEnvelope",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations/{observation_id}/target

Read Observation Target

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
sortBy query No
token query No

Request body

{
    "id": null,
    "isDeleted": null,
    "status": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "id": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Id"
        },
        "isDeleted": {
            "anyOf": [
                {
                    "items": {
                        "type": "boolean"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Isdeleted"
        },
        "status": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/TargetStatus"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Status"
        }
    },
    "title": "Body_read_observation_target_observations__observation_id__target_get",
    "type": "object"
}

Responses

Schema of the response body
{
    "anyOf": [
        {
            "$ref": "#/components/schemas/Target"
        },
        {
            "type": "null"
        }
    ],
    "title": "Response Read Observation Target Observations  Observation Id  Target Get"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /observations/{observation_id}/target

Post Observation Target

Input parameters

Parameter In Type Default Nullable Description
observation_id path string No Observation uid (preferred) or legacy integer id
token query No

Request body

{
    "isDeleted": null,
    "name": "string",
    "position": null,
    "positionOffsetFrame": "icrs_tangent",
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": 10.12,
    "positionOffsetYDeg": 10.12,
    "status": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "Base class for creating targets.",
    "properties": {
        "isDeleted": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "default": false
        },
        "name": {
            "type": "string"
        },
        "position": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPositionCreate",
                            "ephemeral": "#/components/schemas/EphemeralPositionCreate",
                            "fixed": "#/components/schemas/FixedPositionCreate",
                            "orbital": "#/components/schemas/OrbitalPositionCreate"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPositionCreate"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPositionCreate"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPositionCreate"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPositionCreate"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetFrame": {
            "$ref": "#/components/schemas/ObservationPositionOffsetFrame",
            "default": "icrs_tangent"
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "default": 0,
            "type": "number"
        },
        "positionOffsetYDeg": {
            "default": 0,
            "type": "number"
        },
        "status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/TargetStatus"
                },
                {
                    "type": "null"
                }
            ],
            "default": "active"
        }
    },
    "required": [
        "name"
    ],
    "title": "TargetCreate",
    "type": "object"
}

Responses

{
    "id": 0,
    "isDeleted": true,
    "name": "string",
    "positionId": null,
    "positionOffsetFrame": "icrs_tangent",
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": 10.12,
    "positionOffsetYDeg": 10.12,
    "status": "active",
    "targetPosition": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "description": "Primary key for the Target",
            "type": "integer"
        },
        "isDeleted": {
            "description": "Flag indicating if the target is deleted",
            "type": "boolean"
        },
        "name": {
            "description": "Name of the Target",
            "type": "string"
        },
        "positionId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Primary key of the target's position. Resolved through the graph bundle's `target_positions` map."
        },
        "positionOffsetFrame": {
            "$ref": "#/components/schemas/ObservationPositionOffsetFrame",
            "default": "icrs_tangent"
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "default": 0,
            "type": "number"
        },
        "positionOffsetYDeg": {
            "default": 0,
            "type": "number"
        },
        "status": {
            "$ref": "#/components/schemas/TargetStatus",
            "description": "Status of the target"
        },
        "targetPosition": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPosition",
                            "ephemeral": "#/components/schemas/EphemeralPosition",
                            "fixed": "#/components/schemas/FixedPosition",
                            "orbital": "#/components/schemas/OrbitalPosition"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPosition"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPosition"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPosition"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPosition"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "required": [
        "id",
        "status",
        "isDeleted",
        "name"
    ],
    "title": "Target",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /observations:lookup

Lookup Observation

Input parameters

Parameter In Type Default Nullable Description
observation query No
owner query No
token query No

Responses

{
    "affinityHandoffAfterSec": null,
    "affinityMigrateAt": "frame",
    "cadenceCalendarUnit": null,
    "cadenceGapSec": null,
    "cadenceKind": "asap",
    "cadenceLevel": null,
    "cadencePeriodSec": null,
    "cancelOn": null,
    "cohesionLevel": null,
    "completedOn": null,
    "coordinationKind": null,
    "coordinationStartToleranceSec": null,
    "copiesCount": null,
    "copiesMode": "single",
    "coverAssetUid": null,
    "coverPreviewFileId": null,
    "coverThumbnailFileId": null,
    "createdOn": "2022-04-13T15:42:05.901Z",
    "creator": null,
    "creatorId": 0,
    "creatorUid": null,
    "currentEpoch": 0,
    "epochCount": 0,
    "galleryItems": null,
    "groupUid": null,
    "id": 0,
    "instrumentIds": null,
    "instrumentMode": "none",
    "interruptLowerPriority": true,
    "interruptRecovery": "resume",
    "isDeleted": true,
    "isPublic": true,
    "lastActivityOn": null,
    "name": "string",
    "observabilityLastUpdatedOn": null,
    "observingGrantIds": null,
    "observingGrants": null,
    "opticalImagingConfiguration": null,
    "owner": null,
    "ownerId": 0,
    "ownerUid": null,
    "priority": 0,
    "progressFraction": 10.12,
    "radioMappingConfiguration": null,
    "radioTrackingConfiguration": null,
    "renderSettings": null,
    "requestTypes": [
        "optical_imaging"
    ],
    "sampleOrdering": "request_major",
    "startAfter": null,
    "status": "active",
    "target": null,
    "targetId": null,
    "targetUid": null,
    "uid": "320160df-a3ad-4896-a16c-65b8ee28dbde",
    "updatedOn": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "affinityHandoffAfterSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "affinityMigrateAt": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "observation"
        },
        "cadenceCalendarUnit": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CalendarUnit"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceGapSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadenceKind": {
            "$ref": "#/components/schemas/CadenceKind",
            "default": "asap"
        },
        "cadenceLevel": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ScheduleRung"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cadencePeriodSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cancelOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "cohesionLevel": {
            "$ref": "#/components/schemas/ScheduleRung",
            "default": "epoch"
        },
        "completedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationKind": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/CoordinationKind"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coordinationStartToleranceSec": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesCount": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ]
        },
        "copiesMode": {
            "$ref": "#/components/schemas/CopiesMode",
            "default": "single"
        },
        "coverAssetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverPreviewFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "coverThumbnailFileId": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "createdOn": {
            "description": "Creation timestamp.",
            "format": "date-time",
            "type": "string"
        },
        "creator": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "creatorId": {
            "description": "User who created it.",
            "type": "integer"
        },
        "creatorUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "currentEpoch": {
            "default": 0,
            "type": "integer"
        },
        "epochCount": {
            "default": 1,
            "description": "Number of visits. 0 = repeat indefinitely.",
            "type": "integer"
        },
        "galleryItems": {
            "anyOf": [
                {
                    "items": {
                        "$ref": "#/components/schemas/ObservationGalleryItem"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "groupUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "id": {
            "description": "Unique identifier of the observation.",
            "type": "integer"
        },
        "instrumentIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "instrumentMode": {
            "$ref": "#/components/schemas/InstrumentAccessMode"
        },
        "interruptLowerPriority": {
            "description": "Interrupt lower priority.",
            "type": "boolean"
        },
        "interruptRecovery": {
            "$ref": "#/components/schemas/InterruptRecovery",
            "default": "resume"
        },
        "isDeleted": {
            "description": "Flag indicating if deleted.",
            "type": "boolean"
        },
        "isPublic": {
            "type": "boolean"
        },
        "lastActivityOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "description": "Name of the observation.",
            "type": "string"
        },
        "observabilityLastUpdatedOn": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Timestamp of the last observability refresh."
        },
        "observingGrantIds": {
            "anyOf": [
                {
                    "items": {
                        "type": "integer"
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "observingGrants": {
            "anyOf": [
                {
                    "items": {
                        "discriminator": {
                            "mapping": {
                                "externally_managed": "#/components/schemas/ExternallyManagedObservingGrantDetail",
                                "group": "#/components/schemas/GroupObservingGrantDetail",
                                "group_managed": "#/components/schemas/GroupManagedObservingGrantDetail",
                                "member": "#/components/schemas/MemberObservingGrantDetail",
                                "owner": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            "propertyName": "grantType"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MemberObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/OwnerObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/ExternallyManagedObservingGrantDetail"
                            },
                            {
                                "$ref": "#/components/schemas/GroupManagedObservingGrantDetail"
                            }
                        ]
                    },
                    "type": "array"
                },
                {
                    "type": "null"
                }
            ]
        },
        "opticalImagingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/OpticalImagingConfiguration-Output"
                },
                {
                    "type": "null"
                }
            ]
        },
        "owner": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "organization": "#/components/schemas/Organization",
                            "user": "#/components/schemas/User"
                        },
                        "propertyName": "entityType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/User"
                        },
                        {
                            "$ref": "#/components/schemas/Organization"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "ownerId": {
            "description": "Entity that funds this observation.",
            "type": "integer"
        },
        "ownerUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "priority": {
            "type": "integer"
        },
        "progressFraction": {
            "type": "number"
        },
        "radioMappingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioMappingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "radioTrackingConfiguration": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RadioTrackingConfiguration"
                },
                {
                    "type": "null"
                }
            ]
        },
        "renderSettings": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/RenderSettings"
                },
                {
                    "type": "null"
                }
            ]
        },
        "requestTypes": {
            "items": {
                "$ref": "#/components/schemas/ObservationType"
            },
            "type": "array"
        },
        "sampleOrdering": {
            "$ref": "#/components/schemas/SampleOrdering",
            "default": "request_major"
        },
        "startAfter": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "$ref": "#/components/schemas/ObservationStatus"
        },
        "target": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/Target"
                },
                {
                    "type": "null"
                }
            ]
        },
        "targetId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Unique identifier of the target associated with the observation."
        },
        "targetUid": {
            "anyOf": [
                {
                    "format": "uuid",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "uid": {
            "format": "uuid",
            "type": "string"
        },
        "updatedOn": {
            "description": "Update timestamp.",
            "format": "date-time",
            "type": "string"
        }
    },
    "required": [
        "id",
        "uid",
        "targetId",
        "status",
        "isDeleted",
        "createdOn",
        "updatedOn",
        "name",
        "ownerId",
        "creatorId",
        "interruptLowerPriority",
        "priority",
        "progressFraction",
        "isPublic",
        "instrumentMode"
    ],
    "title": "ObservationDetail",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

targets


GET /targets

Read Targets

Input parameters

Parameter In Type Default Nullable Description
id query No
is_deleted query No
isDeleted query No
sort_by query No
sortBy query No
status query No
token query No

Responses

{
    "items": [
        {
            "id": 0,
            "isDeleted": true,
            "name": "string",
            "positionId": null,
            "positionOffsetFrame": "icrs_tangent",
            "positionOffsetReferenceTime": null,
            "positionOffsetXDeg": 10.12,
            "positionOffsetYDeg": 10.12,
            "status": "active",
            "targetPosition": null
        }
    ],
    "page": 0,
    "pages": 0,
    "size": 0,
    "total": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "items": {
            "items": {
                "$ref": "#/components/schemas/Target"
            },
            "title": "Items",
            "type": "array"
        },
        "page": {
            "minimum": 1.0,
            "title": "Page",
            "type": "integer"
        },
        "pages": {
            "minimum": 0.0,
            "title": "Pages",
            "type": "integer"
        },
        "size": {
            "minimum": 1.0,
            "title": "Size",
            "type": "integer"
        },
        "total": {
            "minimum": 0.0,
            "title": "Total",
            "type": "integer"
        }
    },
    "required": [
        "items",
        "total",
        "page",
        "size",
        "pages"
    ],
    "title": "Page[Target]",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

POST /targets

Create Target

Input parameters

Parameter In Type Default Nullable Description
token query No

Request body

{
    "isDeleted": null,
    "name": "string",
    "position": null,
    "positionOffsetFrame": "icrs_tangent",
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": 10.12,
    "positionOffsetYDeg": 10.12,
    "status": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "Base class for creating targets.",
    "properties": {
        "isDeleted": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "default": false
        },
        "name": {
            "type": "string"
        },
        "position": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPositionCreate",
                            "ephemeral": "#/components/schemas/EphemeralPositionCreate",
                            "fixed": "#/components/schemas/FixedPositionCreate",
                            "orbital": "#/components/schemas/OrbitalPositionCreate"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPositionCreate"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPositionCreate"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPositionCreate"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPositionCreate"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetFrame": {
            "$ref": "#/components/schemas/ObservationPositionOffsetFrame",
            "default": "icrs_tangent"
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "default": 0,
            "type": "number"
        },
        "positionOffsetYDeg": {
            "default": 0,
            "type": "number"
        },
        "status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/TargetStatus"
                },
                {
                    "type": "null"
                }
            ],
            "default": "active"
        }
    },
    "required": [
        "name"
    ],
    "title": "TargetCreate",
    "type": "object"
}

Responses

{
    "id": 0,
    "isDeleted": true,
    "name": "string",
    "positionId": null,
    "positionOffsetFrame": "icrs_tangent",
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": 10.12,
    "positionOffsetYDeg": 10.12,
    "status": "active",
    "targetPosition": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "description": "Primary key for the Target",
            "type": "integer"
        },
        "isDeleted": {
            "description": "Flag indicating if the target is deleted",
            "type": "boolean"
        },
        "name": {
            "description": "Name of the Target",
            "type": "string"
        },
        "positionId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Primary key of the target's position. Resolved through the graph bundle's `target_positions` map."
        },
        "positionOffsetFrame": {
            "$ref": "#/components/schemas/ObservationPositionOffsetFrame",
            "default": "icrs_tangent"
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "default": 0,
            "type": "number"
        },
        "positionOffsetYDeg": {
            "default": 0,
            "type": "number"
        },
        "status": {
            "$ref": "#/components/schemas/TargetStatus",
            "description": "Status of the target"
        },
        "targetPosition": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPosition",
                            "ephemeral": "#/components/schemas/EphemeralPosition",
                            "fixed": "#/components/schemas/FixedPosition",
                            "orbital": "#/components/schemas/OrbitalPosition"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPosition"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPosition"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPosition"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPosition"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "required": [
        "id",
        "status",
        "isDeleted",
        "name"
    ],
    "title": "Target",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

DELETE /targets/{target_id}

Delete Target

Input parameters

Parameter In Type Default Nullable Description
target_id path integer No
token query No

Responses

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

GET /targets/{target_id}

Read Target

Input parameters

Parameter In Type Default Nullable Description
target_id path integer No
token query No

Responses

{
    "id": 0,
    "isDeleted": true,
    "name": "string",
    "positionId": null,
    "positionOffsetFrame": "icrs_tangent",
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": 10.12,
    "positionOffsetYDeg": 10.12,
    "status": "active",
    "targetPosition": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "description": "Primary key for the Target",
            "type": "integer"
        },
        "isDeleted": {
            "description": "Flag indicating if the target is deleted",
            "type": "boolean"
        },
        "name": {
            "description": "Name of the Target",
            "type": "string"
        },
        "positionId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Primary key of the target's position. Resolved through the graph bundle's `target_positions` map."
        },
        "positionOffsetFrame": {
            "$ref": "#/components/schemas/ObservationPositionOffsetFrame",
            "default": "icrs_tangent"
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "default": 0,
            "type": "number"
        },
        "positionOffsetYDeg": {
            "default": 0,
            "type": "number"
        },
        "status": {
            "$ref": "#/components/schemas/TargetStatus",
            "description": "Status of the target"
        },
        "targetPosition": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPosition",
                            "ephemeral": "#/components/schemas/EphemeralPosition",
                            "fixed": "#/components/schemas/FixedPosition",
                            "orbital": "#/components/schemas/OrbitalPosition"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPosition"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPosition"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPosition"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPosition"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "required": [
        "id",
        "status",
        "isDeleted",
        "name"
    ],
    "title": "Target",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

PATCH /targets/{target_id}

Update Target

Input parameters

Parameter In Type Default Nullable Description
target_id path integer No
token query No

Request body

{
    "isDeleted": null,
    "name": null,
    "position": null,
    "positionOffsetFrame": null,
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": null,
    "positionOffsetYDeg": null,
    "status": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "description": "Base class for updating targets.",
    "properties": {
        "isDeleted": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ]
        },
        "name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "position": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPositionUpdate",
                            "ephemeral": "#/components/schemas/EphemeralPositionUpdate",
                            "fixed": "#/components/schemas/FixedPositionUpdate",
                            "orbital": "#/components/schemas/OrbitalPositionUpdate"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPositionUpdate"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPositionUpdate"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPositionUpdate"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPositionUpdate"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetFrame": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/ObservationPositionOffsetFrame"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetYDeg": {
            "anyOf": [
                {
                    "type": "number"
                },
                {
                    "type": "null"
                }
            ]
        },
        "status": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/TargetStatus"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "title": "TargetUpdate",
    "type": "object"
}

Responses

{
    "id": 0,
    "isDeleted": true,
    "name": "string",
    "positionId": null,
    "positionOffsetFrame": "icrs_tangent",
    "positionOffsetReferenceTime": null,
    "positionOffsetXDeg": 10.12,
    "positionOffsetYDeg": 10.12,
    "status": "active",
    "targetPosition": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "description": "Primary key for the Target",
            "type": "integer"
        },
        "isDeleted": {
            "description": "Flag indicating if the target is deleted",
            "type": "boolean"
        },
        "name": {
            "description": "Name of the Target",
            "type": "string"
        },
        "positionId": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Primary key of the target's position. Resolved through the graph bundle's `target_positions` map."
        },
        "positionOffsetFrame": {
            "$ref": "#/components/schemas/ObservationPositionOffsetFrame",
            "default": "icrs_tangent"
        },
        "positionOffsetReferenceTime": {
            "anyOf": [
                {
                    "format": "date-time",
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "positionOffsetXDeg": {
            "default": 0,
            "type": "number"
        },
        "positionOffsetYDeg": {
            "default": 0,
            "type": "number"
        },
        "status": {
            "$ref": "#/components/schemas/TargetStatus",
            "description": "Status of the target"
        },
        "targetPosition": {
            "anyOf": [
                {
                    "discriminator": {
                        "mapping": {
                            "catalog": "#/components/schemas/CatalogPosition",
                            "ephemeral": "#/components/schemas/EphemeralPosition",
                            "fixed": "#/components/schemas/FixedPosition",
                            "orbital": "#/components/schemas/OrbitalPosition"
                        },
                        "propertyName": "positionType"
                    },
                    "oneOf": [
                        {
                            "$ref": "#/components/schemas/FixedPosition"
                        },
                        {
                            "$ref": "#/components/schemas/OrbitalPosition"
                        },
                        {
                            "$ref": "#/components/schemas/EphemeralPosition"
                        },
                        {
                            "$ref": "#/components/schemas/CatalogPosition"
                        }
                    ]
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "required": [
        "id",
        "status",
        "isDeleted",
        "name"
    ],
    "title": "Target",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

Endpoints


GET /targets/{target_id}/ephemeris

Read Target Ephemeris

Input parameters

Parameter In Type Default Nullable Description
duration query No
end_time query No
endTime query No
observer_height_m query No
observer_lat query No
observer_lon query No
observerHeightM query No
observerLat query No
observerLon query No
output_frame query No
outputFrame query No
resolution query number 60 No
start_time query No
startTime query No
target_id path integer No
token query No

Responses

{
    "entries": [
        {
            "distanceAu": null,
            "epoch": "2022-04-13T15:42:05.901Z",
            "latDeg": 10.12,
            "lonDeg": 10.12
        }
    ],
    "frame": null,
    "representation": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "description": "Represents a target ephemeris.\n\nAttributes:\n    frame (str): The coordinate frame (e.g., 'icrs', 'fk5').\n    representation (str): The representation type (e.g., 'cartesian', 'spherical').\n    entries (list[TargetEphemerisEntry]): List of ephemeris entries.",
    "properties": {
        "entries": {
            "items": {
                "$ref": "#/components/schemas/TargetEphemerisEntry"
            },
            "type": "array"
        },
        "frame": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        },
        "representation": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ]
        }
    },
    "required": [
        "frame",
        "representation",
        "entries"
    ],
    "title": "TargetEphemeris",
    "type": "object"
}

{
    "detail": [
        {
            "ctx": {},
            "input": null,
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
        }
    },
    "title": "HTTPValidationError",
    "type": "object"
}

Schemas

Antenna

Name Type Description
apertureM number
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

AntennaDetail

Name Type Description
apertureM number
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

ApplySpecRequest

Name Type Description
instrumentIds
isPublic
name
observingGrantIds
requestUids Array<>
spec SpecEnvelope
targetSnr

AssetCopyStatus

Type: string

AssetCreationMethod

Type: string

BlackBodySpectralComponent

Name Type Description
id integer
spectralComponentType string
temperatureK number The temperature of the black body.

Body_read_observation_requests_observations__observation_id__requests_get

Name Type Description
filterObservationId
id
isDeleted
status

Body_read_observation_target_observations__observation_id__target_get

Name Type Description
id
isDeleted
status

CadenceKind

Type: string

CalendarUnit

Type: string

CalibrationMasterStrategy

Type: string

Camera

Name Type Description
arrayHeight integer Number of physical pixels along the vertical axis.
arrayWidth integer Number of physical pixels along the horizontal axis.
coolerIdleTimeoutSec number Idle timeout in seconds before turning off the cooler.
coolerPolicy CameraCoolerPolicy Camera cooler policy for automatic temperature control.
coolerPrestartLeadTimeSec number Lead time in seconds to pre-cool before tasks.
defaultReadoutMode The camera's default readout mode (binning + electronics).
defaultReadoutModeUid UID of the camera's default readout mode.
deviceType string
fullWellCapacityElectrons number Unbinned full well capacity in electrons.
hasElectronicShutter boolean Whether the camera has an electronic shutter.
id The unique identifier for the device.
imageId Image asset ID for the device.
isColor boolean Whether the camera is color or monochrome.
isGlobalShutter boolean Whether the camera is either a CCD or a global shutter CMOS.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
pixelSizeUm number Unbinned pixel size in microns.
readoutModes
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
temperatureSetpointC Target camera temperature setpoint in degrees Celsius.
temperatureSetpointToleranceC Allowed temperature tolerance in degrees Celsius.
uid string(uuid) The unique UID for the device.

CameraCoolerPolicy

Type: string

CameraDetail

Name Type Description
arrayHeight integer Number of physical pixels along the vertical axis.
arrayWidth integer Number of physical pixels along the horizontal axis.
coolerIdleTimeoutSec number Idle timeout in seconds before turning off the cooler.
coolerPolicy CameraCoolerPolicy Camera cooler policy for automatic temperature control.
coolerPrestartLeadTimeSec number Lead time in seconds to pre-cool before tasks.
defaultReadoutMode The camera's default readout mode (binning + electronics).
defaultReadoutModeUid UID of the camera's default readout mode.
deviceType string
fullWellCapacityElectrons number Unbinned full well capacity in electrons.
hasElectronicShutter boolean Whether the camera has an electronic shutter.
id The unique identifier for the device.
imageId Image asset ID for the device.
isColor boolean Whether the camera is color or monochrome.
isGlobalShutter boolean Whether the camera is either a CCD or a global shutter CMOS.
manufacturer
model
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
pixelSizeUm number Unbinned pixel size in microns.
readoutModes
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
temperatureSetpointC Target camera temperature setpoint in degrees Celsius.
temperatureSetpointToleranceC Allowed temperature tolerance in degrees Celsius.
uid string(uuid) The unique UID for the device.

CameraModel

Name Type Description
arrayHeight integer
arrayWidth integer
deviceType string
fullWellCapacityElectrons number
hasElectronicShutter boolean
id
imageId
isColor boolean
isGlobalShutter boolean
manufacturer
modelName string
pixelSizeUm number
readoutModes

CameraReadoutMode

Name Type Description
binning integer Binning factor for the readout mode.
bitDepth integer Bit depth for the readout mode.
blankLevelCounts number Blank level in counts.
cameraId ID of the camera this readout mode belongs to.
cameraModelId ID of the camera model this readout mode belongs to.
darkCurrentElectronsPerSec number Dark current in electrons/second at standard temperature.
description string Description of the readout mode.
gainElectronsPerCount number Inverse gain factor in electrons/count.
hardwareId string ID of the readout mode in the TCS backend.
id integer ID of the readout mode.
isActive boolean Whether this readout mode is selectable for new science/calibration work.
isDeleted boolean Whether this readout mode has been retired from the configuration view.
isFastReadout boolean Whether the readout mode is fast.
isHdr boolean Whether the readout mode is high dynamic range.
isHighGain boolean Whether the readout mode is high gain.
isLdr boolean Whether the readout mode is low dynamic range.
isLowGain boolean Whether the readout mode is low gain.
isLowNoise boolean Whether the readout mode is low noise.
isNonRbiFlood boolean Whether RBI flooding is disabled for the readout mode.
isRbiFlood boolean Whether RBI flooding is enabled for the readout mode.
readoutNoiseElectrons number Readout noise in electrons.
readoutTimeSec number Full-frame readout time in seconds.
uid string(uuid) Unique UID for the readout mode.

CatalogEphemerisBrightnessModel

Name Type Description
catalogObjectId integer Catalog object whose stored ephemeris carries V
id integer Primary key
isPointSource boolean NEOs are point sources
modelType string

CatalogObjectType

Type: string

CatalogPosition

Name Type Description
catalogObject
catalogObjectId integer
id integer
positionType string
targetId
uid string(uuid)

CatalogPositionCreate

Name Type Description
catalogObjectId integer
positionType string

CatalogPositionUpdate

Name Type Description
catalogObjectId
positionType string

ClusterModelingTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
observationId
priority integer
projectId
startedOn
status JobStatus
totalStages

ClusterModelingToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

ClusterModelingToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

CoordinateType

Type: string

CoordinationKind

Type: string

CopiesMode

Type: string

CoverUpdate

Name Type Description
coverAssetUid

DataPolicy

Type: string

DataProductStatus

Type: string

DataToolDefinitionWithInstances

Name Type Description
allowMultiple boolean
dataToolType DataToolType
defaultConfigSchema
description
iconUrl
id integer
instances Array<>
name string
version

DataToolType

Type: string

DitherStrategy

Type: string

EclipticCoordinates

Name Type Description
coordinateType string Type of the coordinate system
distanceAu Distance from origin in AU
epoch Epoch of observation
equinoxJyear Equinox of coordinates in Julian years
id integer Primary key for the TargetCoordinates
latDeg number Ecliptic latitude in degrees
lonDeg number Ecliptic longitude in degrees
pmLatMasPerYear Proper motion in latitude in mas/year
pmLonMasPerYear Proper motion in longitude times cos(lat) in mas/year
radialVelocityKmPerSec Radial velocity in km/s
type Type of ecliptic coordinates

EclipticCoordinatesCreate

Name Type Description
coordinateType string Type of the coordinate system
distanceAu Distance from origin in AU
epoch Epoch of observation
equinoxJyear Equinox of coordinates in Julian years
latDeg number Ecliptic latitude in degrees
lonDeg number Ecliptic longitude in degrees
pmLatMasPerYear Proper motion in latitude in mas/year
pmLonMasPerYear Proper motion in longitude times cos(lat) in mas/year
radialVelocityKmPerSec Radial velocity in km/s
type Type of ecliptic coordinates

EclipticCoordinatesUpdate

Name Type Description
coordinateType string Type of the coordinate system
distanceAu Distance from origin in AU
epoch Epoch of observation
equinoxJyear Equinox of coordinates in Julian years
latDeg Ecliptic latitude in degrees
lonDeg Ecliptic longitude in degrees
pmLatMasPerYear Proper motion in latitude in mas/year
pmLonMasPerYear Proper motion in longitude times cos(lat) in mas/year
radialVelocityKmPerSec Radial velocity in km/s
type Type of ecliptic coordinates

EclipticCoordinateType

Type: string

EffectiveQuotaConstraint

Name Type Description
appliesReason string
controllerEntity
controllerGroup
depth integer
isShared boolean
quota EffectiveQuotaSnapshot
scopeLabel
sourceAccountId integer
sourceAccountName
sourceAccountSlug
sourceGrantId
sourceType string

EffectiveQuotaSnapshot

Name Type Description
anchorAt
createdOn string(date-time)
creditsRemainingInWindow number
creditsUsedInWindow number
currentWindowEnd
currentWindowStart
enabled boolean
id integer
maxCredits number
periodType ObservingQuotaPeriodType
startsAtLocalTime
timezone string
updatedOn string(date-time)

EnclosureDetail

Name Type Description
deviceType string
diameterM Diameter of the enclosure in meters.
enclosurePolicy EnclosurePolicy Enclosure policy for automatic opening/closing behavior.
enclosureType EnclosureType
hasRotation boolean
hasShutter boolean
id The unique identifier for the device.
idleCloseTimeoutSec Idle time in seconds before closing when open-for-tasks-only policy is active.
imageId Image asset ID for the device.
manufacturer
model
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
slitWidthM Width of the dome slit in meters.
sunAltitudeOpenCondition SunAltitudeOpenCondition Condition that determines when to open based on sun altitude.
sunAltitudeThresholdDeg Sun altitude threshold used to determine when to open (degrees).
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.
zenithOverlapAngleDeg Zenith overlap angle in degrees.

EnclosureModel

Name Type Description
deviceType string
diameterM
enclosureType
hasRotation boolean
hasShutter boolean
id
imageId
manufacturer
modelName string
slitWidthM
zenithOverlapAngleDeg Zenith overlap angle in degrees.

EnclosurePolicy

Type: string

EnclosureType

Type: string

EphemeralPosition

Name Type Description
ephemeris Array<EphemerisRecord>
id integer
positionType string
targetId
uid string(uuid)

EphemeralPositionCreate

Name Type Description
positionType string

EphemeralPositionUpdate

Name Type Description
positionType string

EphemerisRecord

Name Type Description
coordinates
coordinatesId
epoch string(date-time)
id

EquatorialCoordinates

Name Type Description
coordinateType string Type of the coordinate system
decDeg number ICRS declination in degrees
distancePc Distance in pc
epoch Epoch of observation
id integer Primary key for the TargetCoordinates
pmDecMasPerYear Proper motion in Dec in mas/year
pmRaMasPerYear Proper motion in RA times cos(Dec) in mas/year
raDeg number ICRS right ascension in degrees
radialVelocityKmPerSec Radial velocity in km/s

EquatorialCoordinatesCreate

Name Type Description
coordinateType string Type of the coordinate system
decDeg number ICRS declination in degrees
distancePc Distance in pc
epoch Epoch of observation
pmDecMasPerYear Proper motion in Dec in mas/year
pmRaMasPerYear Proper motion in RA times cos(Dec) in mas/year
raDeg number ICRS right ascension in degrees
radialVelocityKmPerSec Radial velocity in km/s

EquatorialCoordinatesUpdate

Name Type Description
coordinateType string Type of the coordinate system
decDeg ICRS declination in degrees
distancePc Distance in pc
epoch Epoch of observation
pmDecMasPerYear Proper motion in Dec in mas/year
pmRaMasPerYear Proper motion in RA times cos(Dec) in mas/year
raDeg ICRS right ascension in degrees
radialVelocityKmPerSec Radial velocity in km/s

EventKind

Type: string

EventRead

Name Type Description
createdOn string(date-time)
dedupKey
deviceId
eventKind EventKind
id integer
message
observationId
observatoryId
observingAccountId
operationalConstraintId
ownerEntityId
payload
renderedMessage Human-readable message rendered from the event kind's template + payload at API response time. Distinct from the persisted ``message`` column, which is set only when the producer chose to pre-render. UIs should prefer ``message`` when present and fall back to ``rendered_message``.
resourceId integer
resourceKind EventResourceKind
telescopeId

EventResourceKind

Type: string

ExponentialTemporalComponent

Name Type Description
eventTime string(date-time) UTC time of event.
id integer
index number The exponential decay index.
referenceTimeSec number Characteristic fading time in seconds.
temporalComponentType string

ExposureStatus

Type: string

ExternallyManagedObservingGrantBase

Name Type Description
accountId integer
allowExternalDelegation boolean
createdById
createdOn
creditsUsed
entityId integer
grantType string
id integer
quotas
revoked boolean
revokedById
revokedOn

ExternallyManagedObservingGrantDetail

Name Type Description
account
accountId integer
allowExternalDelegation boolean
createdById
createdOn
creditsUsed
entity
entityId integer
grantType string
id integer
quotas
revoked boolean
revokedById
revokedOn

File

Name Type Description
altTag
bucket
createdBy
createdOn string(date-time)
id string(uuid)
isDataReady boolean
lastAccessedOn
mimeType MimeType
name string
objectKey
remoteUri
renderSettings
secretLinkKey
sizeBytes
storageType
updatedOn string(date-time)
visibility FileVisibility

FileSortField

Type: string

FileSummary

Name Type Description
altTag
bucket
createdBy
createdOn string(date-time)
id string(uuid)
isDataReady boolean
lastAccessedOn
mimeType MimeType
name string
objectKey
remoteUri
renderSettings
secretLinkKey
sizeBytes
storageType
updatedOn string(date-time)
visibility FileVisibility

FileVisibility

Type: string

Filter

Name Type Description
bandpassNm Bandpass of the filter in nanometers
centralWavelengthNm Central wavelength of the filter in nanometers
filterSpecifierType string
flatExposureScaler Scale factor applied to the base twilight flat exposure time for this filter.
flatExposureSunElevationCoeffPerDeg Per-degree coefficient b in the twilight-flat first-guess model exptime ~ exp(b*|sun_elevation_deg|); ~1.2 broadband, ~0.9 narrowband; null defaults to 1.2.
id string Unique identifier of the filter specifier
isModifier True if the filter is a modifier (e.g. polarizer)
throughputFraction Relative broadband throughput (0-1) for plate-solve filter selection; null = unknown

FilterGroup

Name Type Description
description Description of the filter group
filterIds Array<string> List of filter IDs in the group
filters Array<Filter>
filterSpecifierType string
id string Unique identifier of the filter specifier
order integer Display order of the filter group

FilterShape

Type: string

FilterWheelDetail

Name Type Description
deletedPositions Deleted filter wheel positions when explicitly requested.
deviceType string
filterShape The shape of the filter slot
filterSizeMm The diameter of the filter slot if round the length of a side if square in millimeters
filterWheelPositionIds List of filter wheel position PKs
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
model
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
positions Array<FilterWheelPositionDetail> List of filter wheel positions.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

FilterWheelModel

Name Type Description
deviceType string
filterShape
filterSizeMm
id
imageId
manufacturer
modelName string

FilterWheelPosition

Name Type Description
filterIds Array<string> Filter specifier IDs for this position.
filterWheelId integer The ID of the filter wheel this position belongs to.
filterWheelUid The UID of the filter wheel this position belongs to.
flatExposureScaler Initial twilight flat exposure scale in seconds for this filter wheel position.
focusOffset The focus offset in mm when this filter is in use.
id The unique identifier for the filter wheel position.
isActive boolean Whether this filter wheel position is selectable.
isDeleted boolean Whether this filter wheel position is removed from the current configuration view.
label The label of the filter wheel position.
position integer The zero-based slot index of the filter wheel position.
uid string(uuid) The unique UID for the filter wheel position.

FilterWheelPositionDetail

Name Type Description
filterIds Array<string> Filter specifier IDs for this position.
filters Array<Filter> List of filters in this position
filterWheelId integer The ID of the filter wheel this position belongs to.
filterWheelUid The UID of the filter wheel this position belongs to.
flatExposureScaler Initial twilight flat exposure scale in seconds for this filter wheel position.
focusOffset The focus offset in mm when this filter is in use.
id The unique identifier for the filter wheel position.
isActive boolean Whether this filter wheel position is selectable.
isDeleted boolean Whether this filter wheel position is removed from the current configuration view.
label The label of the filter wheel position.
position integer The zero-based slot index of the filter wheel position.
uid string(uuid) The unique UID for the filter wheel position.

FixedPosition

Name Type Description
coordinates
coordinatesId integer
id integer
positionType string
targetId
uid string(uuid)

FixedPositionCreate

Name Type Description
coordinates
positionType string

FixedPositionUpdate

Name Type Description
coordinates
positionType string

FlatFieldSource

Type: string

Focuser

Name Type Description
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
maxPosition integer Maximum focuser position.
minPosition integer Minimum focuser position.
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
stepSize number Size of each step, in the focuser driver's reported position units (e.g. microns for ASCOM, motor steps for others).
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
temperatureCompensated boolean Whether temperature compensation is supported.
uid string(uuid) The unique UID for the device.

FocuserDetail

Name Type Description
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
maxPosition integer Maximum focuser position.
minPosition integer Minimum focuser position.
model
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
stepSize number Size of each step, in the focuser driver's reported position units (e.g. microns for ASCOM, motor steps for others).
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
temperatureCompensated boolean Whether temperature compensation is supported.
uid string(uuid) The unique UID for the device.

FocuserModel

Name Type Description
deviceType string
id
imageId
manufacturer
maxPosition integer
minPosition integer
modelName string
stepSize number
temperatureCompensated boolean

FocusTemperatureSource

Type: string

GalacticCoordinates

Name Type Description
coordinateType string Type of the coordinate system
distancePc Distance in pc
epoch Epoch of observation
id integer Primary key for the TargetCoordinates
latDeg number Galactic latitude in degrees
lonDeg number Galactic longitude in degrees
pmLatMasPerYear Proper motion in latitude in mas/year
pmLonMasPerYear Proper motion in longitude times cos(lat) in mas/year
radialVelocityKmPerSec Radial velocity in km/s

GalacticCoordinatesCreate

Name Type Description
coordinateType string Type of the coordinate system
distancePc Distance in pc
epoch Epoch of observation
latDeg number Galactic latitude in degrees
lonDeg number Galactic longitude in degrees
pmLatMasPerYear Proper motion in latitude in mas/year
pmLonMasPerYear Proper motion in longitude times cos(lat) in mas/year
radialVelocityKmPerSec Radial velocity in km/s

GalacticCoordinatesUpdate

Name Type Description
coordinateType string Type of the coordinate system
distancePc Distance in pc
epoch Epoch of observation
latDeg Galactic latitude in degrees
lonDeg Galactic longitude in degrees
pmLatMasPerYear Proper motion in latitude in mas/year
pmLonMasPerYear Proper motion in longitude times cos(lat) in mas/year
radialVelocityKmPerSec Radial velocity in km/s

GroupManagedObservingGrantBase

Name Type Description
accountId integer
createdById
createdOn
creditsUsed
grantType string
groupId integer
id integer
quotas
revoked boolean
revokedById
revokedOn

GroupManagedObservingGrantDetail

Name Type Description
account
accountId integer
createdById
createdOn
creditsUsed
grantType string
group GroupSummary
groupId integer
id integer
quotas
revoked boolean
revokedById
revokedOn

GroupObservingGrantDetail

Name Type Description
account
accountId integer
createdById
createdOn
creditsUsed
grantType string
group GroupSummary
groupId integer
id integer
quotas
revoked boolean
revokedById
revokedOn

GroupSummary

Name Type Description
allowDataPolicyOverride boolean Whether overriding the data policy is allowed
allowInvitations boolean Whether invitations are allowed
dataPolicy Data policy.
defaultRoleId Default role for users in this group.
description string Description of the group
id integer Unique identifier of the group.
memberCount Number of members in the group
name string Name of the group
organizationId Unique identifier of the organization to which the group belongs
slug string Unique identifier used in URLs referencing the group.

HorizontalCoordinates

Name Type Description
altDeg number Altitude in degrees
azDeg number Azimuth in degrees
coordinateType string Type of the coordinate system
epoch Epoch of observation
id integer Primary key for the TargetCoordinates
pmAltArcsecPerSec Proper motion in altitude in arcsec/s
pmAzArcsecPerSec Proper motion in azimuth times cos(alt) in arcsec/s

HorizontalCoordinatesCreate

Name Type Description
altDeg number Altitude in degrees
azDeg number Azimuth in degrees
coordinateType string Type of the coordinate system
epoch Epoch of observation
pmAltArcsecPerSec Proper motion in altitude in arcsec/s
pmAzArcsecPerSec Proper motion in azimuth times cos(alt) in arcsec/s

HorizontalCoordinatesUpdate

Name Type Description
altDeg Altitude in degrees
azDeg Azimuth in degrees
coordinateType string Type of the coordinate system
epoch Epoch of observation
pmAltArcsecPerSec Proper motion in altitude in arcsec/s
pmAzArcsecPerSec Proper motion in azimuth times cos(alt) in arcsec/s

HTTPValidationError

Name Type Description
detail Array<ValidationError>

InstrumentAccessMode

Type: string

InstrumentRotator

Name Type Description
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

InstrumentRotatorDetail

Name Type Description
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

InterruptRecovery

Type: string

IPCamera

Name Type Description
id
isPrimary boolean
isPublic boolean
lastSeen
name string
observatoryId
onvifHost
order integer
pose
ptz boolean
role IPCameraRole
streams Array<IPCameraStream>
telescopeId
uid string(uuid)
vendor

IPCameraRole

Type: string

IPCameraStream

Name Type Description
active boolean
cameraId integer
expiresSec
id integer
kind StreamKind
quality

JobExceptionMessage

Name Type Description
message string
timestamp string(date-time)
traceback
type string

JobStatus

Type: string

JPLPlanetName

Type: string

LunarPhaseDirection

Type: string

MajorSolarSystemObject

Name Type Description
catalogObjectType string
id integer Primary key of the catalog object
name MajorSolarSystemObjectName Name of the major solar‑system object
uid string(uuid) Stable UUID of the catalog object

MajorSolarSystemObjectName

Type: string

MemberObservingGrantDetail

Name Type Description
account
accountId integer
createdById
createdOn
creditsUsed
grantType string
id integer
quotas
revoked boolean
revokedById
revokedOn
user UserWithEmail
userId integer

MimeType

Type: string

MountDetail

Name Type Description
defaultPierSide PierSide
deviceType string
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
maxSlewAccelerationAxis1DegPerSec2
maxSlewAccelerationAxis2DegPerSec2
maxSlewRateAxis1DegPerSec number
maxSlewRateAxis2DegPerSec number
maxSlewRateDegPerSec number
maxTrackingDurationSec number
meridianAvoidanceDeg number
meridianTrackingLimitDeg number
minAltitudeDeg number
model
modelId
mountType MountType
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
pivotXM number X coordinate of the mount pivot in meters.
pivotYM number Y coordinate of the mount pivot in meters.
pivotZM number Z coordinate of the mount pivot in meters.
serialNumber Serial number for the device.
settleTimeSec number Seconds the mount must hold within the on-target tolerance before it reports on-target.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.
zenithAvoidanceDeg number

MountModel

Name Type Description
defaultPierSide PierSide
deviceType string
id
imageId
manufacturer
maxSlewAccelerationAxis1DegPerSec2
maxSlewAccelerationAxis2DegPerSec2
maxSlewRateAxis1DegPerSec number
maxSlewRateAxis2DegPerSec number
meridianTrackingLimitDeg number
modelName string
mountType MountType

MountType

Type: string

MpcComet

Name Type Description
argumentOfPerihelionDeg number Argument of perihelion in degrees
catalogObjectType string
designation Comet designation
eccentricity number Orbital eccentricity
id integer Primary key of the catalog object
inclinationDeg number Inclination in degrees
longitudeOfAscendingNodeDeg number Longitude of ascending node in degrees
name string Comet name
number Comet number
orbitType string Orbit type
perihelionDistanceAu number Perihelion distance in AU
perihelionEpochJyear number Epoch of perihelion in Julian years
uid string(uuid) Stable UUID of the catalog object

MpcOrbit

Name Type Description
argumentOfPerihelionDeg number Argument of perihelion in degrees
catalogObjectType string
designation string Orbit designation
eccentricity number Orbital eccentricity
epochJyear number Epoch of elements in Julian years
gMag G magnitude
hMag H magnitude
id integer Primary key of the catalog object
inclinationDeg number Inclination in degrees
longitudeOfAscendingNodeDeg number Longitude of ascending node in degrees
meanAnomalyDeg number Mean anomaly in degrees
name string Name of the orbited object
number Orbit number
semimajorAxisAu number Semimajor axis in AU
uid string(uuid) Stable UUID of the catalog object

NeocpObject

Name Type Description
arcHours Observed arc length (Scout 'arc' is in hours)
catalogObjectType string
designation string NEOCP temporary designation, e.g. 'P10vY9r'
ephemerisUpdatedOn
hMag Absolute magnitude H
id integer Primary key of the catalog object
lastScoutRunOn Scout 'lastRun' of the current orbit computation
neoScore Scout neoScore (0-100)
nObs Astrometric observation count
posUncertaintyArcmin 1-sigma plane-of-sky uncertainty now (Scout sigma-pos)
provider string Ephemeris provider
rateArcsecPerMin Plane-of-sky motion rate now
rating Scout rating
retiredOn Object left the NEOCP (designated or rejected)
uid string(uuid) Stable UUID of the catalog object
vMag Apparent V magnitude now

NoradSatellite

Name Type Description
catalogObjectType string
classification string Satellite classification
id integer Primary key of the catalog object
internationalDesignator International Designator (COSPAR ID)
name Satellite name
omm Orbit Mean‑Elements Message fields
satelliteCatalogNumber integer NORAD catalog number
tle Two‑ or Three‑Line Elements
uid string(uuid) Stable UUID of the catalog object

ObservabilityWindow

Name Type Description
endsOn string(date-time)
instrumentId integer
observable boolean
obsId integer
reason string
requestId
requestType ObservationType
startsOn string(date-time)
telescopeId

Observation

Name Type Description
affinityHandoffAfterSec
affinityMigrateAt ScheduleRung
cadenceCalendarUnit
cadenceGapSec
cadenceKind CadenceKind
cadenceLevel
cadencePeriodSec
cancelOn
cohesionLevel ScheduleRung
completedOn
coordinationKind
coordinationStartToleranceSec
copiesCount
copiesMode CopiesMode
coverAssetUid
coverPreviewFileId
coverThumbnailFileId
createdOn string(date-time) Creation timestamp.
creatorId integer User who created it.
creatorUid
currentEpoch integer
epochCount integer Number of visits. 0 = repeat indefinitely.
groupUid
id integer Unique identifier of the observation.
instrumentIds
instrumentMode InstrumentAccessMode
interruptLowerPriority boolean Interrupt lower priority.
interruptRecovery InterruptRecovery
isDeleted boolean Flag indicating if deleted.
isPublic boolean
lastActivityOn
name string Name of the observation.
observabilityLastUpdatedOn Timestamp of the last observability refresh.
observingGrantIds
opticalImagingConfiguration
ownerId integer Entity that funds this observation.
ownerUid
priority integer
progressFraction number
radioMappingConfiguration
radioTrackingConfiguration
requestTypes Array<ObservationType>
sampleOrdering SampleOrdering
startAfter
status ObservationStatus
targetId Unique identifier of the target associated with the observation.
targetUid
uid string(uuid)
updatedOn string(date-time) Update timestamp.

ObservationAsset

Name Type Description
copyStatus
createdAtNode
currentAnalysisRunId
currentProcessingOutputId
currentProcessingRunId
currentRenderRunId
fileId string(uuid)
id integer
instrumentId integer
instrumentUid
isTransferrable
lastTransferAttempt
localFileId
nextEligibleRenderAt
nextTransferAttemptAt
nodeAvailableUntil
nodeCopyDeletedAt
nodeFinalizedAt
nodeStage
observationId integer
observationUid
previewFileId
processingFlags
qaMetrics
qaReason
qaStatus
remoteFilePath
renderDirtyAt
role
rootObservationAssetId
rootObservationAssetUid
serverQaMetrics
serverQaReason
serverQaStatus
thumbnailFileId
transferAttempts
transferError
transferProgressFraction
transferredAt
transferState
uid string(uuid)

ObservationAssetAnalysisRun

Name Type Description
completedOn
config
configHash
errorMessages
headerCore
id string(uuid)
imageQualityMetrics
observationAssetId integer
runnerVersion
startedAt
status JobStatus

ObservationAssetAnalysisRunHeaderCore

Name Type Description
airmass
binX
binY
bitpix
bscale
bzero
ccdTemperatureC
decTelescopeDeg
exposureTimeSec
filterId
gainElectronsPerCount
midExposureMjd
naxis
naxis1
naxis2
pointingCorrectionEastArcsec
pointingCorrectionNorthArcsec
raTelescopeDeg
readNoiseElectrons
takenAtEndUtc
takenAtStartUtc
wcsCd11
wcsCd12
wcsCd21
wcsCd22
wcsCrota2
wcsCrpix1
wcsCrpix2
wcsCrval1
wcsCrval2
wcsInHeader
wcsPixelScaleArcsecPerPx

ObservationAssetAnalysisRunImageQualityMetrics

Name Type Description
backgroundCounts
ellipticity
fwhmArcsec
sourceCount

ObservationAssetFacets

Name Type Description
importableCount integer Server-held FITS-image assets — the subset an external FITS consumer (e.g. the Afterglow data provider) can import right now. Gates the 'Open in Afterglow' action together with the observation's active state (an active observation may still produce importable data).
pipeline ObservationAssetPipelineFacets Per-stage capture counts for the Overview's pipeline strip.
processingFlags Array<ObservationAssetProcessingFlagFacet> Distinct processing flags present across assets, with counts (descending).
roles Array<ObservationAssetRoleFacet> Distinct roles present, with counts (descending).
totalCount integer Assets visible under the applied narrative.

ObservationAssetNodeStage

Type: string

ObservationAssetPipelineFacets

Name Type Description
calibratedCount integer Captures whose canonical run measured a photometric zero point.
capturedCount integer Science captures (excl. calibration frames and diagnostics).
processedCount integer Captures whose canonical processing run completed.
solvedCount integer Captures whose canonical run accepted a WCS solution.

ObservationAssetPipelineOutputKind

Type: string

ObservationAssetProcessingFlag

Type: string

ObservationAssetProcessingFlagFacet

Name Type Description
count integer
flag ObservationAssetProcessingFlag

ObservationAssetProcessingOutput

Name Type Description
id string(uuid)
isCanonical boolean
outputObservationAsset
outputObservationAssetId integer
processingRunId string(uuid)
productKind ObservationAssetPipelineOutputKind

ObservationAssetProcessingOutputSummary

Name Type Description
id string(uuid)
isCanonical boolean
outputObservationAssetId integer
processingRunId string(uuid)
productKind ObservationAssetPipelineOutputKind

ObservationAssetProcessingRun

Name Type Description
completedOn
config
configHash
errorMessages
headerCore
id string(uuid)
imageQualityMetrics
observationAssetId integer
outputs Array<ObservationAssetProcessingOutput>
photometry
reductionInfo
runnerVersion
startedAt
status JobStatus
wcsSolution

ObservationAssetProcessingRunHeaderCore

Name Type Description
airmass
binX
binY
bitpix
bscale
bzero
ccdTemperatureC
decTelescopeDeg
exposureTimeSec
filterId
gainElectronsPerCount
midExposureMjd
naxis
naxis1
naxis2
raTelescopeDeg
readNoiseElectrons
takenAtEndUtc
takenAtStartUtc

ObservationAssetProcessingRunImageQualityMetrics

Name Type Description
backgroundCounts
ellipticity
fwhmArcsec
sourceCount

ObservationAssetProcessingRunImageReductionInfo

Name Type Description
masterBiasId
masterDarkId
masterFlatId
rawAssetId
reductionOutcome

ObservationAssetProcessingRunPhotometry

Name Type Description
fieldCalOutcome
zeroPointErrorMag
zeroPointMag

ObservationAssetProcessingRunWcsSolution

Name Type Description
cd11
cd12
cd21
cd22
cdelt1
cdelt2
crota2
crpix1
crpix2
crval1
crval2
dateSolved
decDeg
deltaDecDeg
deltaRaDeg
foundSolution
heightPx
mirrored
nField
pixelScaleArcsecPerPx
pointingErrorArcsec
raDeg
rejectionReason
rotationDeg
scienceHduIndex
seededFromHeader
solveAttempts
solveBackend
solveDurationSec
solveFailureReason
solveMethod
solveRadiusDeg
solverSourceCount
widthPx

ObservationAssetQaStatus

Type: string

ObservationAssetReductionInfo

Name Type Description
biasId
darkId
flatId
observationAssetId
observationAssetUid
rawFileId
uid string(uuid)

ObservationAssetRenderRun

Name Type Description
completedOn
config
configHash
createdOn string(date-time)
currentStage
currentStageIndex
currentStageProgressFraction
errorMessages
id string(uuid)
iterations integer
observationAssetId integer
priority integer
rendererVersion
startedOn
status JobStatus
totalStages
version

ObservationAssetRole

Type: string

ObservationAssetRoleFacet

Name Type Description
count integer
role ObservationAssetRole

ObservationAssetRootSummary

Name Type Description
fileId string(uuid)
id integer
previewFileId
processingFlags
role
serverQaStatus
thumbnailFileId
uid string(uuid)

ObservationAssetSortField

Type: string

ObservationAssetSummary

Name Type Description
copyStatus
createdAtNode
currentAnalysisRun
currentAnalysisRunId
currentProcessingOutput
currentProcessingOutputId
currentProcessingRun
currentProcessingRunId
currentRenderRun
currentRenderRunId
file
fileId string(uuid)
id integer
instrumentId integer
instrumentUid
isTransferrable
lastTransferAttempt
localFileId
nextEligibleRenderAt
nextTransferAttemptAt
nodeAvailableUntil
nodeCopyDeletedAt
nodeFinalizedAt
nodeStage
observationId integer
observationUid
previewFile
previewFileId
processingFlags
processingRunCount
qaMetrics
qaReason
qaStatus
reductionInfo
remoteFilePath
renderDirtyAt
resultProcessingOutputs
role
rootObservationAssetId
rootObservationAssetUid
serverQaMetrics
serverQaReason
serverQaStatus
taskInfo
thumbnailFile
thumbnailFileId
transferAttempts
transferError
transferProgressFraction
transferredAt
transferState
uid string(uuid)

ObservationAssetView

Type: string

ObservationAssetWithFile

Name Type Description
copyStatus
createdAtNode
currentAnalysisRunId
currentProcessingOutputId
currentProcessingRunId
currentRenderRunId
file
fileId string(uuid)
id integer
instrumentId integer
instrumentUid
isTransferrable
lastTransferAttempt
localFileId
nextEligibleRenderAt
nextTransferAttemptAt
nodeAvailableUntil
nodeCopyDeletedAt
nodeFinalizedAt
nodeStage
observationId integer
observationUid
previewFileId
processingFlags
qaMetrics
qaReason
qaStatus
remoteFilePath
renderDirtyAt
role
rootObservationAssetId
rootObservationAssetUid
serverQaMetrics
serverQaReason
serverQaStatus
thumbnailFileId
transferAttempts
transferError
transferProgressFraction
transferredAt
transferState
uid string(uuid)

ObservationAssetWithFileAndRoot

Name Type Description
copyStatus
createdAtNode
currentAnalysisRunId
currentProcessingOutputId
currentProcessingRunId
currentRenderRunId
file
fileId string(uuid)
id integer
instrumentId integer
instrumentUid
isTransferrable
lastTransferAttempt
localFileId
nextEligibleRenderAt
nextTransferAttemptAt
nodeAvailableUntil
nodeCopyDeletedAt
nodeFinalizedAt
nodeStage
observationId integer
observationUid
previewFileId
processingFlags
qaMetrics
qaReason
qaStatus
remoteFilePath
renderDirtyAt
role
rootObservationAsset
rootObservationAssetId
rootObservationAssetUid
serverQaMetrics
serverQaReason
serverQaStatus
thumbnailFileId
transferAttempts
transferError
transferProgressFraction
transferredAt
transferState
uid string(uuid)

ObservationDetail

Name Type Description
affinityHandoffAfterSec
affinityMigrateAt ScheduleRung
cadenceCalendarUnit
cadenceGapSec
cadenceKind CadenceKind
cadenceLevel
cadencePeriodSec
cancelOn
cohesionLevel ScheduleRung
completedOn
coordinationKind
coordinationStartToleranceSec
copiesCount
copiesMode CopiesMode
coverAssetUid
coverPreviewFileId
coverThumbnailFileId
createdOn string(date-time) Creation timestamp.
creator
creatorId integer User who created it.
creatorUid
currentEpoch integer
epochCount integer Number of visits. 0 = repeat indefinitely.
galleryItems
groupUid
id integer Unique identifier of the observation.
instrumentIds
instrumentMode InstrumentAccessMode
interruptLowerPriority boolean Interrupt lower priority.
interruptRecovery InterruptRecovery
isDeleted boolean Flag indicating if deleted.
isPublic boolean
lastActivityOn
name string Name of the observation.
observabilityLastUpdatedOn Timestamp of the last observability refresh.
observingGrantIds
observingGrants
opticalImagingConfiguration
owner
ownerId integer Entity that funds this observation.
ownerUid
priority integer
progressFraction number
radioMappingConfiguration
radioTrackingConfiguration
renderSettings
requestTypes Array<ObservationType>
sampleOrdering SampleOrdering
startAfter
status ObservationStatus
target
targetId Unique identifier of the target associated with the observation.
targetUid
uid string(uuid)
updatedOn string(date-time) Update timestamp.

ObservationEditSeed

Name Type Description
instrumentIds Array<integer>
isPublic boolean
observingGrantIds Array<integer>
ownerName string
ownerSlug string
requestUids Array<string(uuid)>
spec SpecEnvelope
status string

ObservationGalleryItem

Name Type Description
file
fileId string(uuid)
id integer
observationId integer
observationUid
order
visibility boolean

ObservationPositionOffsetFrame

Type: string

ObservationProcessingSettings

Name Type Description
effective ProcessingPipelineSettings-Output The override deep-merged onto platform defaults — what the pipeline will actually run under.
override Exactly what is stored: only the fields the owner explicitly set. Null means nothing has been overridden and the observation tracks platform defaults. This is what a modified-from-default indicator and a per-field reset are built on.

ObservationReprocessReceipt

Name Type Description
assetsMarked integer How many of the observation's assets were marked for re-processing.

ObservationRequestSortField

Type: string

ObservationRequestStatus

Type: string

ObservationResultDetail

Name Type Description
assetsRevision integer
copiesMode CopiesMode
copyIndex integer
currentProcessingRun
currentProcessingRunId
dataProductStatus DataProductStatus
dirtyFromRevision
epochIndex integer
fulfilledOn
fulfillmentStatus ResultFulfillmentStatus
id integer
instrumentId
lastBuiltRevision
nextEligibleRunAt
notBefore
observationId integer
requestId integer
sampleIndex integer
tasks Array<>
uid string(uuid)

ObservationResultPipelineOutputKind

Type: string

ObservationResultProcessingRun

Name Type Description
id integer
inputAssets Array<ObservationAsset>
outputs Array<ObservationResultProcessingRunOutput>
resultId integer
status JobStatus

ObservationResultProcessingRunOutput

Name Type Description
id integer
observationAsset
observationAssetId integer
outputKind ObservationResultPipelineOutputKind
processingRunId integer
tileId
zeroPointMag

ObservationResultProcessingRunOutputSummary

Name Type Description
id integer
observationAssetId integer
outputKind ObservationResultPipelineOutputKind
processingRunId integer
tileId
zeroPointMag

ObservationSortField

Type: string

ObservationStatus

Type: string

ObservationSummary

Name Type Description
affinityHandoffAfterSec
affinityMigrateAt ScheduleRung
cadenceCalendarUnit
cadenceGapSec
cadenceKind CadenceKind
cadenceLevel
cadencePeriodSec
cancelOn
cohesionLevel ScheduleRung
completedOn
coordinationKind
coordinationStartToleranceSec
copiesCount
copiesMode CopiesMode
coverAssetUid
coverPreviewFileId
coverThumbnailFileId
createdOn string(date-time) Creation timestamp.
creator
creatorId integer User who created it.
creatorUid
currentEpoch integer
epochCount integer Number of visits. 0 = repeat indefinitely.
galleryItems
groupUid
id integer Unique identifier of the observation.
instrumentIds
instrumentMode InstrumentAccessMode
interruptLowerPriority boolean Interrupt lower priority.
interruptRecovery InterruptRecovery
isDeleted boolean Flag indicating if deleted.
isPublic boolean
lastActivityOn
name string Name of the observation.
observabilityLastUpdatedOn Timestamp of the last observability refresh.
observingGrantIds
opticalImagingConfiguration
owner
ownerId integer Entity that funds this observation.
ownerUid
priority integer
progressFraction number
radioMappingConfiguration
radioTrackingConfiguration
requestTypes Array<ObservationType>
sampleOrdering SampleOrdering
startAfter
status ObservationStatus
target
targetId Unique identifier of the target associated with the observation.
targetUid
uid string(uuid)
updatedOn string(date-time) Update timestamp.

ObservationTaskSortField

Type: string

ObservationTaskStatus

Type: string

ObservationTrackingMode

Type: string

ObservationType

Type: string

ObservationUpdate

Name Type Description
affinityHandoffAfterSec
affinityMigrateAt
cadenceCalendarUnit
cadenceGapSec
cadenceKind
cadenceLevel
cadencePeriodSec
cancelOn
cohesionLevel
completedOn
coordinationKind
coordinationStartToleranceSec
copiesCount
copiesMode
epochCount
instrumentIds
instrumentMode
interruptLowerPriority
interruptRecovery
isDeleted
isPublic
lastActivityOn
name
observabilityLastUpdatedOn
observingGrantIds
opticalImagingConfiguration
ownerId
priority
progressFraction
radioMappingConfiguration
radioTrackingConfiguration
renderSettings
sampleOrdering
startAfter
status

ObservatoryGalleryItem

Name Type Description
file
fileId string(uuid)
id integer
observatoryId integer
order
visibility boolean

ObservatorySummary

Name Type Description
countryCode string
description
elevationM number
galleryItemIds
iauCode
id
imageId
ipCameraIds
isAvailable boolean
isPublic boolean
latitudeDeg number
location string
longitudeDeg number
name string
owner
ownerId integer
publicLatitudeDeg
publicLongitudeDeg
shortName
site
siteId
siteUid
slug string
telescopeIds
uid string(uuid)
weatherSensorIds

ObservatoryWithoutTelescopes

Name Type Description
countryCode string
description
elevationM number
galleryItemIds
galleryItems Array<ObservatoryGalleryItem>
iauCode
id
imageId
ipCameraIds
ipCameras Array<IPCamera>
isAvailable boolean
isPublic boolean
latitudeDeg number
location string
longitudeDeg number
name string
owner
ownerId integer
publicLatitudeDeg
publicLongitudeDeg
shortName
site
siteId
siteUid
slug string
telescopeIds
telescopes Array<TelescopeSummary>
uid string(uuid)
weatherSensorIds
weatherSensors Array<WeatherSensor>

ObservingAccountDetail

Name Type Description
creditsUsed
effectiveQueueAccessGrants
id integer
isDeleted boolean
lastActivityOn
managingGroup
managingGroupId
name
observingPolicy
observingPolicyId
order integer
owner
ownerId integer
path
queueAccessGrantIds
quotas
slug
sourceAccountGrant
sourceAccountGrantId
sourceAccountId
sponsor
upstreamQuotaConstraints

ObservingAccountQuota

Name Type Description
accountId integer
anchorAt
createdOn string(date-time)
creditsRemainingInWindow number
creditsUsedInWindow number
currentWindowEnd
currentWindowStart
enabled boolean
id integer
maxCredits number
periodType ObservingQuotaPeriodType
startsAtLocalTime
timezone string
updatedOn string(date-time)

ObservingDataPolicy

Type: string

ObservingGrantQuota

Name Type Description
anchorAt
createdOn string(date-time)
creditsRemainingInWindow number
creditsUsedInWindow number
currentWindowEnd
currentWindowStart
enabled boolean
grantId integer
id integer
maxCredits number
periodType ObservingQuotaPeriodType
startsAtLocalTime
timezone string
updatedOn string(date-time)

ObservingPlan

Name Type Description
allRequestsObservable boolean
anyRequestsObservable boolean
constraints Array<string>
instrument
isObservable boolean
legendColor string
observabilityWindows Array<ObservabilityWindow>
observationId integer
opticalImagingConfigurationPlan
radioMappingConfigurationPlan
radioTrackingConfigurationPlan
requestPlanMap
telescope TelescopeDetail

ObservingPolicySummary

Name Type Description
allowedCatalogObjectTypes
allowedCoordinateTypes
allowedDataPolicies Array<ObservingDataPolicy>
allowedRequestTypes Array<ObservationType>
allowedTargetPositionTypes
allowHiddenObservation boolean
allowHiddenTelemetry boolean
dataPublicAfter
description
id integer
name string
organizationId integer

ObservingQueueAccessGrantSummary

Name Type Description
effectiveOrder integer
id integer
observingPolicyId
order integer
queue
queueId integer
revoked boolean
telescopeAccessGrant
telescopeAccessGrantId integer
timeContested number
timeUsed number
timeWaiting number

ObservingQueueAccessPrioritization

Type: string

ObservingQueueSummary

Name Type Description
accessPrioritization ObservingQueueAccessPrioritization
canInterrupt boolean
description string
enabled boolean
id integer
name string
order integer
slug string
telescope
telescopeId integer

ObservingQuotaPeriodType

Type: string

OperationalConstraintAction

Name Type Description
action OperationalConstraintActionType
deviceId integer
deviceUid
id
operationalConstraintId integer
priority integer
triggerOnStabilizing boolean
triggerOnUnknown boolean
triggerOnUnsafe boolean
uid string(uuid)

OperationalConstraintActionType

Type: string

OpticalFrameQaMetrics

Name Type Description
appliedPointingOffsetEastArcsec
appliedPointingOffsetNorthArcsec
backgroundCounts
elongation
fwhmArcsec
kind string
pointingErrorArcsec
schemaVersion integer
sourceCount
wcsMethod
wcsSolved

OpticalImagerCalibrationConfiguration

Name Type Description
biasMaxSunElevationDeg number Maximum allowed Sun elevation for bias calibrations (degrees)
biasMinSunElevationDeg number Minimum allowed Sun elevation for bias calibrations (degrees)
calibrationIntervalHours number Interval between bias/dark calibration samples (hours)
calibrationObservationMaxAgeHours number Roll the calibration observation over once it is older than this (hours)
calibrationObservationMaxTasks integer Roll the calibration observation over once it has this many tasks
darkExposureTimes Array<number> Dark exposure times to collect, in seconds.
darkFilterMoveEnabled boolean When true, SkyNode moves the filter wheel to the opaque dark filter before dark/bias frames
darkFilterWheelPosition Resolved filter wheel position (opaque/blank slot) used for dark/bias frames when dark_filter_move_enabled
darkMaxSunElevationDeg number Maximum allowed Sun elevation for dark calibrations (degrees)
darkMinSunElevationDeg number Minimum allowed Sun elevation for dark calibrations (degrees)
flatFieldSource FlatFieldSource Flat field illumination source
flatToleranceFraction number Fractional tolerance for flat-field average counts
imagerId integer Optical imager ID
maxExposureTimeSec number Maximum acceptable exposure time for flats (seconds)
minExposureTimeSec number Minimum acceptable exposure time for flats (seconds)
numBiases integer Number of bias frames
numDarks integer Number of dark frames
numFlats integer Number of flat frames
screenFlatEnclosureAzimuthDeg Enclosure azimuth for enclosure-screen flats (degrees)
screenFlatMaxSunElevationDeg number Maximum allowed Sun elevation for enclosure-screen flat calibrations (degrees)
screenFlatMinSunElevationDeg number Minimum allowed Sun elevation for enclosure-screen flat calibrations (degrees)
screenFlatMountAltitudeDeg Mount altitude for enclosure-screen flats (degrees)
screenFlatMountAzimuthDeg Mount azimuth for enclosure-screen flats (degrees)
targetFullWellFraction number Target fraction of full well depth for flats
twilightFlatIntervalHours number Interval between samples of each twilight-flat filter (hours)
twilightFlatMaxSunElevationDeg number Maximum allowed Sun elevation for twilight flat calibrations (degrees)
twilightFlatMinSunElevationDeg number Minimum allowed Sun elevation for twilight flat calibrations (degrees)

OpticalImagerDetail

Name Type Description
calibrationConfiguration Calibration configuration
calibrationMasterStrategy CalibrationMasterStrategy How calibration masters are produced
camera Camera details
cameraId integer Camera PK
cameraUid Camera UID
configurationUpdatedOn string(date-time) Timestamp of last scheduling-relevant configuration update
configurationVersion integer Monotonic scheduling configuration version
filterCombinations Allowed filter combos
filterWheelIds Array<integer> Filter Wheel PKs
filterWheels Array<FilterWheelDetail>
filterWheelUids Filter Wheel UIDs
focuser Focuser details
focuserId Focuser PK
focuserUid Focuser UID
focusReferenceTemperatureC Reference temperature for focus calibration
focusTemperatureCompensationEnabled boolean Whether focus temperature compensation is enabled
focusTemperatureSlope Focus slope (position units per degree)
focusTemperatureSource Temperature source for focus compensation
focusZeroPoint Focuser position at reference temperature
fov FOV (width, height) in degrees
id Instrument PK
instrumentRotator Instrument rotator details
instrumentRotatorId Instrument rotator PK
instrumentRotatorUid Instrument rotator UID
instrumentType string Optical imager
isActive boolean Is active?
name string Instrument name
ota OTA details
otaId integer OTA PK
otaUid OTA UID
pixelScale Pixel scale (arcsec/pixel)
pointingRefinementEnabled boolean Whether pre-flight pointing refinement runs for this imager
seeingArcsec number Seeing (arcsec)
skyParams Sky parameters
solveBlindFallbackEnabled boolean On an adequate-source miss, fall back to a blind triangle solve to recover the reference PA + parity
solveExposureSec number Base solve test-exposure time, scaled by filter throughput
solveFilterPolicy SolveFilterPolicy Solve-filter selection policy
solveLastMeasuredAt When the server pipeline last confirmed/corrected PA/parity
solveMinFilterThroughputFraction number Min filter throughput (0-1) usable for a solve exposure
solveMinSources integer Extracted-source floor splitting the miss remedy: at/above = blind-eligible, below = repoint-eligible
solveParity Net image handedness as the WCS-determinant sign (+1 normal, -1 flipped)
solvePointingRadiusArcmin number Pointing-uncertainty search radius for the constrained solve
solveReferencePositionAngleDeg On-sky PA when the rotator reads 0 (solver adds the live rotator angle)
solveRepointAttempts integer Max repoint-and-retry fields tried on star-poor misses (only used when solve_repoint_enabled)
solveRepointDistanceArcmin number Distance to slew for each repoint attempt (cycling N/E/S/W)
solveRepointEnabled boolean On a star-poor miss, slew to a nearby field, solve there, and apply the correction back to the target
solveRotationToleranceDeg number Max rotation deviation from the prior for the constrained solve
solveScaleToleranceFraction number Max scale deviation from the prior (0-1) for the constrained solve
telescope Telescope
telescopeId integer Owning telescope PK
telescopeUid Owning telescope UID
uid string(uuid) Instrument UID
weatherSensorId Weather sensor PK for ambient focus compensation
weatherSensorUid Weather sensor UID for ambient focus compensation

OpticalImagerWithoutTelescope

Name Type Description
calibrationConfiguration Calibration configuration
calibrationMasterStrategy CalibrationMasterStrategy How calibration masters are produced
camera Camera details
cameraId integer Camera PK
cameraUid Camera UID
configurationUpdatedOn string(date-time) Timestamp of last scheduling-relevant configuration update
configurationVersion integer Monotonic scheduling configuration version
filterCombinations Allowed filter combos
filterWheelIds Array<integer> Filter Wheel PKs
filterWheels Array<FilterWheelDetail>
filterWheelUids Filter Wheel UIDs
focuser Focuser details
focuserId Focuser PK
focuserUid Focuser UID
focusReferenceTemperatureC Reference temperature for focus calibration
focusTemperatureCompensationEnabled boolean Whether focus temperature compensation is enabled
focusTemperatureSlope Focus slope (position units per degree)
focusTemperatureSource Temperature source for focus compensation
focusZeroPoint Focuser position at reference temperature
fov FOV (width, height) in degrees
id Instrument PK
instrumentRotator Instrument rotator details
instrumentRotatorId Instrument rotator PK
instrumentRotatorUid Instrument rotator UID
instrumentType string Optical imager
isActive boolean Is active?
name string Instrument name
ota OTA details
otaId integer OTA PK
otaUid OTA UID
pixelScale Pixel scale (arcsec/pixel)
pointingRefinementEnabled boolean Whether pre-flight pointing refinement runs for this imager
seeingArcsec number Seeing (arcsec)
skyParams Sky parameters
solveBlindFallbackEnabled boolean On an adequate-source miss, fall back to a blind triangle solve to recover the reference PA + parity
solveExposureSec number Base solve test-exposure time, scaled by filter throughput
solveFilterPolicy SolveFilterPolicy Solve-filter selection policy
solveLastMeasuredAt When the server pipeline last confirmed/corrected PA/parity
solveMinFilterThroughputFraction number Min filter throughput (0-1) usable for a solve exposure
solveMinSources integer Extracted-source floor splitting the miss remedy: at/above = blind-eligible, below = repoint-eligible
solveParity Net image handedness as the WCS-determinant sign (+1 normal, -1 flipped)
solvePointingRadiusArcmin number Pointing-uncertainty search radius for the constrained solve
solveReferencePositionAngleDeg On-sky PA when the rotator reads 0 (solver adds the live rotator angle)
solveRepointAttempts integer Max repoint-and-retry fields tried on star-poor misses (only used when solve_repoint_enabled)
solveRepointDistanceArcmin number Distance to slew for each repoint attempt (cycling N/E/S/W)
solveRepointEnabled boolean On a star-poor miss, slew to a nearby field, solve there, and apply the correction back to the target
solveRotationToleranceDeg number Max rotation deviation from the prior for the constrained solve
solveScaleToleranceFraction number Max scale deviation from the prior (0-1) for the constrained solve
telescope Telescope
telescopeId integer Owning telescope PK
telescopeUid Owning telescope UID
uid string(uuid) Instrument UID
weatherSensorId Weather sensor PK for ambient focus compensation
weatherSensorUid Weather sensor UID for ambient focus compensation

OpticalImagingBiasCalibrationRequest

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
expiresOn
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
temperatureBand
uid string(uuid)

OpticalImagingBiasCalibrationRequestCreate

Name Type Description
active
cameraId
ccdTemperatureC
createdOn
expiresOn
instrumentId
instrumentMode
isDeleted
modifiedOn
observationId
order integer
readoutModeId
requestType string
requiredFrames integer
sampleCount
status
temperatureBand

OpticalImagingBiasCalibrationRequestDetail

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
currentTask
expiresOn
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
temperatureBand
uid string(uuid)

OpticalImagingBiasCalibrationRequestPlan

Name Type Description
acquiredFrames integer
constraints Array<string>
expiresOn
instrumentId integer
isObservable boolean
requestId integer
requestType string
requiredFrames integer
sampleCount integer

OpticalImagingBiasCalibrationRequestSummary

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
expiresOn
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
temperatureBand
uid string(uuid)

OpticalImagingBiasCalibrationRequestUpdate

Name Type Description
active
cameraId
ccdTemperatureC
createdOn
expiresOn
instrumentId
instrumentMode
isDeleted
modifiedOn
observationId
order
readoutModeId
requestType string
requiredFrames
sampleCount
status
temperatureBand

OpticalImagingBiasCalibrationTask

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
id integer
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingBiasCalibrationTaskDetail

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
camera
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
id integer
instrument OpticalImagerDetail
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutMode
readoutModeId
request OpticalImagingBiasCalibrationRequestDetail
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
target
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingBiasCalibrationTaskSummary

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
id integer
instrument
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingCalibrationObservationAssetTaskInfoDetail

Name Type Description
exposureTimeSec
frameNumber
observationAssetId
observationAssetUid
task
taskId integer
taskType string
taskUid
uid string(uuid)

OpticalImagingConfiguration-Input

Name Type Description
brightnessModel
brightnessModelId
ditherPositionAngleDeg
ditherSteps
ditherStepSizeDeg
ditherStrategy DitherStrategy
fieldLockedOn
imageNormalizationSettingsId
lunarPhaseDirection
maxElevationDeg
maxFovXArcmin
maxFovYArcmin
maxMoonPhaseFraction
maxPixelScaleArcsecPerPx
maxSunElevationDeg
maxTiles integer
minElevationDeg
minFovXArcmin
minFovYArcmin
minMoonPhaseFraction
minMoonSeparationDeg
minPixelScaleArcsecPerPx
minPixelsPerFwhm
minSunElevationDeg
positionAngleDeg
recenteringThreshold
repointingStrategy RepointingStrategy
saturationModel
saturationModelId
temporalOffsetSec number
tileOverlap number
trackingMode ObservationTrackingMode

OpticalImagingConfiguration-Output

Name Type Description
brightnessModel
brightnessModelId
ditherPositionAngleDeg
ditherSteps
ditherStepSizeDeg
ditherStrategy DitherStrategy
fieldLockedOn
imageNormalizationSettingsId
lunarPhaseDirection
maxElevationDeg
maxFovXArcmin
maxFovYArcmin
maxMoonPhaseFraction
maxPixelScaleArcsecPerPx
maxSunElevationDeg
maxTiles integer
minElevationDeg
minFovXArcmin
minFovYArcmin
minMoonPhaseFraction
minMoonSeparationDeg
minPixelScaleArcsecPerPx
minPixelsPerFwhm
minSunElevationDeg
positionAngleDeg
recenteringThreshold
repointingStrategy RepointingStrategy
saturationModel
saturationModelId
temporalOffsetSec number
tileOverlap number
trackingMode ObservationTrackingMode

OpticalImagingConfigurationPlan

Name Type Description
dither Array<OpticalImagingOffset>
positionAngleDeg number
selectedFiltersByRequest
tiles Array<OpticalImagingOffset>
totalExposures integer
totalExposureTimeSec number
xFov number
yFov number

OpticalImagingDarkCalibrationRequest

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
expiresOn
exposureTimeSec
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
temperatureBand
uid string(uuid)

OpticalImagingDarkCalibrationRequestCreate

Name Type Description
active
cameraId
ccdTemperatureC
createdOn
expiresOn
exposureTimeSec
instrumentId
instrumentMode
isDeleted
modifiedOn
observationId
order integer
readoutModeId
requestType string
requiredFrames integer
sampleCount
status
temperatureBand

OpticalImagingDarkCalibrationRequestDetail

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
currentTask
expiresOn
exposureTimeSec
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
temperatureBand
uid string(uuid)

OpticalImagingDarkCalibrationRequestPlan

Name Type Description
acquiredFrames integer
constraints Array<string>
expiresOn
instrumentId integer
isObservable boolean
requestId integer
requestType string
requiredFrames integer
sampleCount integer

OpticalImagingDarkCalibrationRequestSummary

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
expiresOn
exposureTimeSec
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
temperatureBand
uid string(uuid)

OpticalImagingDarkCalibrationRequestUpdate

Name Type Description
active
cameraId
ccdTemperatureC
createdOn
expiresOn
exposureTimeSec
instrumentId
instrumentMode
isDeleted
modifiedOn
observationId
order
readoutModeId
requestType string
requiredFrames
sampleCount
status
temperatureBand

OpticalImagingDarkCalibrationTask

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
exposureTimeSec
id integer
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingDarkCalibrationTaskDetail

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
camera
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
exposureTimeSec
id integer
instrument OpticalImagerDetail
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutMode
readoutModeId
request OpticalImagingDarkCalibrationRequestDetail
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
target
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingDarkCalibrationTaskSummary

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
exposureTimeSec
id integer
instrument
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingFlatCalibrationRequest

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
expiresOn
filterIds Array<string>
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
maxExposureTimeSec
minExposureTimeSec
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
targetFullWellFraction
temperatureBand
uid string(uuid)

OpticalImagingFlatCalibrationRequestCreate

Name Type Description
active
cameraId
ccdTemperatureC
createdOn
expiresOn
filterIds
instrumentId
instrumentMode
isDeleted
maxExposureTimeSec
minExposureTimeSec
modifiedOn
observationId
order integer
readoutModeId
requestType string
requiredFrames integer
sampleCount
status
targetFullWellFraction
temperatureBand

OpticalImagingFlatCalibrationRequestDetail

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
currentTask
expiresOn
filterIds Array<string>
filters Array<Filter>
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
maxExposureTimeSec
minExposureTimeSec
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
targetFullWellFraction
temperatureBand
uid string(uuid)

OpticalImagingFlatCalibrationRequestPlan

Name Type Description
acquiredFrames integer
constraints Array<string>
expiresOn
instrumentId integer
isObservable boolean
requestId integer
requestType string
requiredFrames integer
sampleCount integer

OpticalImagingFlatCalibrationRequestSummary

Name Type Description
active boolean
cameraId
ccdTemperatureC
createdOn
currentSample integer
expiresOn
filterIds Array<string>
filters Array<Filter>
id integer
instrumentId
instrumentMode InstrumentAccessMode
isDeleted boolean
maxExposureTimeSec
minExposureTimeSec
modifiedOn
observationId integer
observationUid
order integer
progressFraction number
readoutModeId
requestType string
requiredFrames integer
sampleCount integer
status ObservationRequestStatus
targetFullWellFraction
temperatureBand
uid string(uuid)

OpticalImagingFlatCalibrationRequestUpdate

Name Type Description
active
cameraId
ccdTemperatureC
createdOn
expiresOn
filterIds
instrumentId
instrumentMode
isDeleted
maxExposureTimeSec
minExposureTimeSec
modifiedOn
observationId
order
readoutModeId
requestType string
requiredFrames
sampleCount
status
targetFullWellFraction
temperatureBand

OpticalImagingFlatCalibrationTask

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
filterIds
filterWheelPositionIds
id integer
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
maxExposureTimeSec
minExposureTimeSec
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetFullWellFraction
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingFlatCalibrationTaskDetail

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
camera
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
filterIds
filters Array<Filter>
filterWheelPositionIds
filterWheelPositions Array<FilterWheelPosition>
id integer
instrument OpticalImagerDetail
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
maxExposureTimeSec
minExposureTimeSec
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutMode
readoutModeId
request OpticalImagingFlatCalibrationRequestDetail
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
target
targetFullWellFraction
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingFlatCalibrationTaskSummary

Name Type Description
acquiredFrames integer
actualEndTime
actualStartTime
assetsRevision integer
cameraId
cameraUid
ccdTemperatureC
completedOn
earliestStartTime
expirationTime
expiresOn
filterIds
filterWheelPositionIds
id integer
instrument
instrumentConfigurationVersion
instrumentId integer
instrumentUid
masterFileId
maxExposureTimeSec
minExposureTimeSec
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
requestId integer
requestUid
requiredFrames integer
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetFullWellFraction
targetId
taskType string
temperatureBand
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingObservationAssetTaskInfoDetail

Name Type Description
exposureTimeSec
frameNumber
observationAssetId
observationAssetUid
task
taskId integer
taskType string
taskUid
tileId
uid string(uuid)

OpticalImagingOffset

Name Type Description
cs
sn
x number
y number

OpticalImagingRequest

Name Type Description
active boolean
allowBinning
allowCoadding boolean
allowFastReadout
allowRegistration boolean
allowSubframe
createdOn
currentSample integer
electronicShutter
exposureTimeSec
filterSpecifierIds Array<string>
globalShutter
hdr
highGain
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
maxBitDepth
minBitDepth
modifiedOn
observationId integer
observationUid
optimizeFor
order integer
progressFraction number
rbiFlood
requestType string
sampleCount integer
status ObservationRequestStatus
targetFullWellFraction
targetSnr
uid string(uuid)

OpticalImagingRequestCreate

Name Type Description
active
allowBinning
allowCoadding
allowFastReadout
allowRegistration
allowSubframe
createdOn
electronicShutter
exposureTimeSec
filterSpecifierIds
globalShutter
hdr
highGain
instrumentMode
isDeleted
maxBitDepth
minBitDepth
modifiedOn
observationId
optimizeFor
order integer
rbiFlood
requestType string
sampleCount
status
targetFullWellFraction
targetSnr

OpticalImagingRequestDetail

Name Type Description
active boolean
allowBinning
allowCoadding boolean
allowFastReadout
allowRegistration boolean
allowSubframe
createdOn
currentSample integer
currentTask
electronicShutter
exposureTimeSec
filterSpecifierIds Array<string>
filterSpecifiers Array<>
globalShutter
hdr
highGain
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
maxBitDepth
minBitDepth
modifiedOn
observationId integer
observationUid
optimizeFor
order integer
progressFraction number
rbiFlood
requestType string
sampleCount integer
status ObservationRequestStatus
targetFullWellFraction
targetSnr
uid string(uuid)

OpticalImagingRequestPlan

Name Type Description
constraints Array<string>
exposures integer
exposureTimeSec number
filters Array<Filter>
instrumentId integer
isObservable boolean
requestId integer
requestType string
sampleCount integer

OpticalImagingRequestSummary

Name Type Description
active boolean
allowBinning
allowCoadding boolean
allowFastReadout
allowRegistration boolean
allowSubframe
createdOn
currentSample integer
electronicShutter
exposureTimeSec
filterSpecifierIds Array<string>
filterSpecifiers Array<>
globalShutter
hdr
highGain
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
maxBitDepth
minBitDepth
modifiedOn
observationId integer
observationUid
optimizeFor
order integer
progressFraction number
rbiFlood
requestType string
sampleCount integer
status ObservationRequestStatus
targetFullWellFraction
targetSnr
uid string(uuid)

OpticalImagingRequestUpdate

Name Type Description
active
allowBinning
allowCoadding
allowFastReadout
allowRegistration
allowSubframe
createdOn
electronicShutter
exposureTimeSec
filterSpecifierIds
globalShutter
hdr
highGain
instrumentMode
isDeleted
maxBitDepth
minBitDepth
modifiedOn
observationId
optimizeFor
order
rbiFlood
requestType string
sampleCount
status
targetFullWellFraction
targetSnr

OpticalImagingTask

Name Type Description
acquiredExposureTimeSec number
acquiredFrames integer
actualEndTime
actualStartTime
allowSubframe boolean
assetsRevision integer
cameraId
cameraUid
completedOn
earliestStartTime
expirationTime
fieldLockedOn
filterIds Array<string>
filterWheelPositionIds Array<integer>
id integer
instrumentConfigurationVersion
instrumentId integer
instrumentUid
maxExposureTimeSec
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
otaId
otaUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
recenteringThreshold
repointingStrategy RepointingStrategy
requestId integer
requestUid
requiredExposureTimeSec
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
subframeFovXArcmin
subframeFovYArcmin
targetId
taskType string
temporalOffsetSec number
totalExposures integer
totalPlannedDuration
trackingMode ObservationTrackingMode
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingTaskDetail

Name Type Description
acquiredExposureTimeSec number
acquiredFrames integer
actualEndTime
actualStartTime
allowSubframe boolean
assetsRevision integer
camera
cameraId
cameraUid
completedOn
earliestStartTime
expirationTime
fieldLockedOn
filterIds Array<string>
filters Array<Filter>
filterWheelPositionIds Array<integer>
filterWheelPositions Array<FilterWheelPosition>
id integer
instrument OpticalImagerDetail
instrumentConfigurationVersion
instrumentId integer
instrumentUid
maxExposureTimeSec
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
ota
otaId
otaUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutMode
readoutModeId
recenteringThreshold
repointingStrategy RepointingStrategy
request OpticalImagingRequestDetail
requestId integer
requestUid
requiredExposureTimeSec
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
subframeFovXArcmin
subframeFovYArcmin
target Target
targetId
taskType string
temporalOffsetSec number
tiles Array<OpticalImagingTaskTile>
totalExposures integer
totalPlannedDuration
trackingMode ObservationTrackingMode
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingTaskSummary

Name Type Description
acquiredExposureTimeSec number
acquiredFrames integer
actualEndTime
actualStartTime
allowSubframe boolean
assetsRevision integer
cameraId
cameraUid
completedOn
earliestStartTime
expirationTime
fieldLockedOn
filterIds Array<string>
filters Array<Filter>
filterWheelPositionIds Array<integer>
id integer
instrument
instrumentConfigurationVersion
instrumentId integer
instrumentUid
maxExposureTimeSec
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
otaId
otaUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
readoutModeId
recenteringThreshold
repointingStrategy RepointingStrategy
requestId integer
requestUid
requiredExposureTimeSec
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
subframeFovXArcmin
subframeFovYArcmin
targetId
taskType string
temporalOffsetSec number
totalExposures integer
totalPlannedDuration
trackingMode ObservationTrackingMode
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

OpticalImagingTaskTile

Name Type Description
acquiredExposureTimeSec number
acquiredFrames integer
id integer
offsetXDeg number
offsetYDeg number
order integer
status ExposureStatus
taskId integer
totalExposureTimeSec number
totalFrames integer
uid

OpticalReadoutObjective

Type: string

OrbitalPosition

Name Type Description
argumentOfPerihelionDeg number
eccentricity number
epochJyear number
id integer
inclinationDeg number
longitudeOfAscendingNodeDeg number
meanAnomalyDeg number
orbitType OrbitType
positionType string
semilatusRectumAu number
targetId
uid string(uuid)

OrbitalPositionCreate

Name Type Description
argumentOfPerihelionDeg number
eccentricity number
epochJyear number
inclinationDeg number
longitudeOfAscendingNodeDeg number
meanAnomalyDeg number
orbitType OrbitType
positionType string
semilatusRectumAu number

OrbitalPositionUpdate

Name Type Description
argumentOfPerihelionDeg
eccentricity
epochJyear
inclinationDeg
longitudeOfAscendingNodeDeg
meanAnomalyDeg
orbitType
positionType string
semilatusRectumAu

OrbitType

Type: string

Organization

Name Type Description
allowRequestToJoin boolean Whether request-to-join is allowed
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
defaultRoleId Default role for users in this organization.
description Description/Bio provided by the user or organization in their public profile
entityType string
id integer Unique identifier of the user/organization.
isPublic boolean Whether the organization is listed in the public directory and exposes a public profile.
location Location provided by the user or organization in their public profile
memberCount Number of members in the organization
membersVisibleToMembers boolean Whether ordinary members can see the organization's member roster (both the /members endpoint and the public directory).
name string Name of the user/organization.
observingPolicyIds Observing policy PKs configured for the organization.
profileImageId Profile image of the user/organization.
shortName Short name of the organization
slug string Unique identifier used in URLs referencing the user/organization.
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
websiteUrl Website URL provided by the user or organization in their public profile

OrganizationPublic

Name Type Description
allowRequestToJoin boolean Whether request-to-join is allowed
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
defaultRoleId Default role for users in this organization.
description Description/Bio provided by the user or organization in their public profile
entityType string
id integer Unique identifier of the user/organization.
isPublic boolean Whether the organization is listed in the public directory and exposes a public profile.
location Location provided by the user or organization in their public profile
memberCount Number of members in the organization
membersVisibleToMembers boolean Whether ordinary members can see the organization's member roster (both the /members endpoint and the public directory).
name string Name of the user/organization.
observingPolicyIds Observing policy PKs configured for the organization.
profileImageId Profile image of the user/organization.
shortName Short name of the organization
slug string Unique identifier used in URLs referencing the user/organization.
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
websiteUrl Website URL provided by the user or organization in their public profile

OrganizationSummary

Name Type Description
allowRequestToJoin boolean Whether request-to-join is allowed
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
defaultRoleId Default role for users in this organization.
description Description/Bio provided by the user or organization in their public profile
entityType string
id integer Unique identifier of the user/organization.
isPublic boolean Whether the organization is listed in the public directory and exposes a public profile.
location Location provided by the user or organization in their public profile
memberCount Number of members in the organization
membersVisibleToMembers boolean Whether ordinary members can see the organization's member roster (both the /members endpoint and the public directory).
name string Name of the user/organization.
observingPolicyIds Observing policy PKs configured for the organization.
profileImageId Profile image of the user/organization.
shortName Short name of the organization
slug string Unique identifier used in URLs referencing the user/organization.
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
websiteUrl Website URL provided by the user or organization in their public profile

Ota

Name Type Description
apertureM number Unobstructed aperture of the OTA in meters.
deviceType string
focalLengthM number Focal length of the OTA in meters.
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
offsetScalar Distance from mount pivot to OTA axis in meters along mount reference axis.
offsetXM X offset from parent OTA axis in meters.
offsetYM Y offset from parent OTA axis in meters.
offsetZM Z offset from parent OTA axis in meters.
operationalConstraintIds Operational constraint PKs
opticalDesign
ownerId integer The organization or user which owns the device.
parentOta
parentOtaId ID of the parent OTA if piggybacked.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

OtaDetail

Name Type Description
apertureM number Unobstructed aperture of the OTA in meters.
deviceType string
focalLengthM number Focal length of the OTA in meters.
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
model
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
offsetScalar Distance from mount pivot to OTA axis in meters along mount reference axis.
offsetXM X offset from parent OTA axis in meters.
offsetYM Y offset from parent OTA axis in meters.
offsetZM Z offset from parent OTA axis in meters.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
opticalDesign
ownerId integer The organization or user which owns the device.
parentOta
parentOtaId ID of the parent OTA if piggybacked.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

OtaModel

Name Type Description
apertureM number
deviceType string
focalLengthM number
id
imageId
manufacturer
modelName string
opticalDesign

OwnerFieldCalibrationSettings

Name Type Description
catalogs Array<string> Catalogs to solve the zero point against, in priority order.
maxSnr Highest signal-to-noise a source may have, excluding near-saturated stars. Null disables the ceiling.
maxStars Cap on calibration stars used. Null means no cap.
minSnr number Lowest signal-to-noise a source may have and still calibrate. 0 disables the floor.
sourceMatchTol number Match radius between a detected source and a catalog star, arcseconds. 0 disables matching.
variableCheckTol number Match radius against the variable-star catalog, arcseconds. 0 skips the variable check.

OwnerObservingGrantDetail

Name Type Description
account
accountId integer
createdById
createdOn
creditsUsed
grantType string
id integer
quotas
revoked boolean
revokedById
revokedOn

OwnerOpticalProcessingSettings

Name Type Description
fieldCal OwnerFieldCalibrationSettings
fieldCalSourcePolicy OwnerSourceCullingSettings
photometry OwnerPhotometrySettings
photometrySourcePolicy OwnerSourceCullingSettings
reduction OwnerReductionSettings
solve OwnerSolveSettings
sourceDetection OwnerSourceDetectionSettings
stages OwnerStageToggles
wcsSourcePolicy OwnerSourceCullingSettings

OwnerPhotometrySettings

Name Type Description
a Aperture semi-major axis, pixels.
aInPx Background annulus inner semi-major axis, pixels.
aOutPx Background annulus outer semi-major axis, pixels.
b Aperture semi-minor axis, pixels.
bOutPx Background annulus outer semi-minor axis, pixels.
centroidRadius number Radius in pixels for re-centring on each source; 0 disables centroiding, which is correct in dense fields where a centroid picks up neighbour flux.
mode string Photometry mode.
rejectBkgOutliers boolean Reject outlying pixels when estimating the background.
theta number Aperture position angle, degrees.
thetaOutDeg Background annulus position angle, degrees.

OwnerRadioProcessingSettings

OwnerReductionSettings

Name Type Description
masterMaxAgeSec How stale a master calibration frame may be, measured from the frame's capture time. Null means no bound, which will happily pair a science frame with a six-month-old flat.

OwnerSolveSettings

Name Type Description
allSkyFallback boolean When the constrained solve ladder finds nothing, run a wide-area astrometry.net search. Slow by design; catches gross mispointing. Requires the deployment to provide astrometry.net indexes.

OwnerSourceCullingSettings

Name Type Description
autoSatLevel boolean Estimate the saturation level from the frame instead.
clipHi number Reject sources above this brightness percentile.
clipLo number Reject the faintest percentile of sources.
discardSaturated integer Drop sources with at least this many saturated pixels. 0 keeps them.
limit Hard cap applied after all other cuts. Null means no cap.
maxEllipticity number Reject sources more elongated than this.
maxFwhm number Reject sources wider than this FWHM, pixels.
maxSources integer Keep at most this many sources, brightest first.
minFwhm number Reject sources narrower than this FWHM, pixels.
satLevel number Saturation level in ADU.

OwnerSourceDetectionSettings

Name Type Description
bkFilterSize integer Background mesh median-filter size.
bkSize number Background mesh size: a fraction of the image in (0, 1], or pixels above 1.
centroid boolean Refine positions with windowed centroids.
clean number SEP cleaning parameter. 0 disables cleaning.
deblend boolean Deblend overlapping sources.
deblendContrast number Minimum deblending contrast.
deblendLevels integer Deblending sub-threshold levels.
downsample integer Detection downsampling factor.
fwhm number Matched-filter kernel FWHM prior, pixels. 0 disables.
minPixels integer Minimum connected pixels for a detection.
ratio number Kernel axis ratio prior.
theta number Kernel position-angle prior, degrees.
threshold number Detection threshold in sigma above background. Lower finds fainter sources for every stage.

OwnerStageToggles

Name Type Description
fieldCalibration boolean Solve the photometric zero point against catalog stars.
photometry boolean Extract and measure sources on the frame.
reduction boolean Subtract masters and flat-correct before anything else runs.
wcsSolve boolean Plate-solve the frame and write the WCS into the product.

Page_Annotated_Union_OpticalImagingRequestPlan__OpticalImagingBiasCalibrationRequestPlan__OpticalImagingDarkCalibrationRequestPlan__OpticalImagingFlatCalibrationRequestPlan__RadioTrackingRequestPlan__RadioMappingRequestPlanFieldInfoannotation_NoneTyperequired_True__discriminator__request_type____

Name Type Description
items Array<>
page integer
pages integer
size integer
total integer

Page_Annotated_Union_OpticalImagingRequestSummary__OpticalImagingBiasCalibrationRequestSummary__OpticalImagingDarkCalibrationRequestSummary__OpticalImagingFlatCalibrationRequestSummary__RadioTrackingRequestSummary__RadioMappingRequestSummaryFieldInfoannotation_NoneTyperequired_True__discriminator__request_type____

Name Type Description
items Array<>
page integer
pages integer
size integer
total integer

Page_Annotated_Union_OpticalImagingTaskSummary__OpticalImagingBiasCalibrationTaskSummary__OpticalImagingDarkCalibrationTaskSummary__OpticalImagingFlatCalibrationTaskSummary__RadioTrackingTaskSummary__RadioMappingTaskSummaryFieldInfoannotation_NoneTyperequired_True__discriminator__task_type____

Name Type Description
items Array<>
page integer
pages integer
size integer
total integer

Page_DataToolDefinitionWithInstances_

Name Type Description
items Array<DataToolDefinitionWithInstances>
page integer
pages integer
size integer
total integer

Page_EventRead_

Name Type Description
items Array<EventRead>
page integer
pages integer
size integer
total integer

Page_ObservabilityWindow_

Name Type Description
items Array<ObservabilityWindow>
page integer
pages integer
size integer
total integer

Page_ObservationAssetSummary_

Name Type Description
items Array<ObservationAssetSummary>
page integer
pages integer
size integer
total integer

Page_ObservationResultDetail_

Name Type Description
items Array<ObservationResultDetail>
page integer
pages integer
size integer
total integer

Page_ObservationSummary_

Name Type Description
items Array<ObservationSummary>
page integer
pages integer
size integer
total integer

Page_ObservingPlan_

Name Type Description
items Array<ObservingPlan>
page integer
pages integer
size integer
total integer

Page_Target_

Name Type Description
items Array<Target>
page integer
pages integer
size integer
total integer

PierSide

Type: string

PlanetarySatellite

Name Type Description
bsp string Name of the SPK ephemeris file
catalogObjectType string
id integer Primary key of the catalog object
name string Name of the satellite
number integer The JPL number of the satellite
planet JPLPlanetName Central planet of the satellite
uid string(uuid) Stable UUID of the catalog object

PolarizationType

Type: string

PowerLawSpectralComponent

Name Type Description
id integer
index number The power law decay index.
spectralComponentType string

PowerLawTemporalComponent

Name Type Description
eventTime string(date-time) UTC time of event.
id integer
index number The power law decay index.
referenceTimeSec number Characteristic fading time in seconds.
temporalComponentType string

ProcessingPipelineSettings-Input

Name Type Description
optical OwnerOpticalProcessingSettings
radio OwnerRadioProcessingSettings
schemaVersion integer Version of this document's shape, read by the migrator chain.

ProcessingPipelineSettings-Output

Name Type Description
optical OwnerOpticalProcessingSettings
radio OwnerRadioProcessingSettings
schemaVersion integer Version of this document's shape, read by the migrator chain.

RadioBackend

Name Type Description
description Description
deviceType string
id Radio backend PK
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

RadioBackendConfiguration

Name Type Description
bandwidthMhz number
centerFrequenciesMhz Array<number>
channels integer
integrationTimeMs number
recordMode RadioBackendRecordMode

RadioBackendDetail

Name Type Description
description Description
deviceType string
id Radio backend PK
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

RadioBackendMode

Name Type Description
bandwidthMhz number Bandwidth (MHz)
channelsExponent integer Channels exponent
frequencyWindows integer Number of frequency windows
id integer Radio backend mode PK
integrationTimesMs Integration times (ms)
isSimultaneous boolean Is simultaneous?
minimumIntegrationTimeMs Minimum integration time (ms)
name string Mode name
radioBackendId integer Radio backend PK
recordMode RadioBackendRecordMode Acquisition/output family (spectrometer → SDFITS, pulsar_* → PSRFITS)

RadioBackendRecordMode

Type: string

RadioCoordinateUnit

Type: string

RadioFilter

Name Type Description
id integer Radio filter PK
maxFrequencyMhz number Filter upper frequency bound (MHz)
minFrequencyMhz number Filter lower frequency bound (MHz)
name Filter name
receiverId integer Owning receiver PK

RadioGainCalibrationPlacement

Type: string

RadioMappingConfiguration

Name Type Description
coordinateType CoordinateType
coordinateUnit RadioCoordinateUnit
daisyDiameter
densityAlongSweeps number
densityBetweenSweeps
enableSphericalCorrection boolean
integrationTimeSec
mappingStrategy RadioMappingStrategy
maxSunElevationDeg number
minElevationDeg number
minSunSeparationDeg number
rasterSizeX
rasterSizeY
slewSpeedDegPerSec
sweepDirection

RadioMappingConfigurationPlan

Name Type Description
densityAlongSweepsDeg
densityBetweenSweepsDeg
integrationTimeSec
mappingStrategy RadioMappingStrategy
samplePoints Array<RadioMappingSamplePoint>
slewSpeedDegPerSec

RadioMappingRasterDirection

Type: string

RadioMappingRequest

Name Type Description
active boolean
createdOn
currentSample integer
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
minResolutionMhz
modifiedOn
observationId integer
observationUid
order integer
polarization
progressFraction number
requestType string
sampleCount integer
spectroscopyWindowIds Array<integer>
status ObservationRequestStatus
uid string(uuid)

RadioMappingRequestCreate

Name Type Description
active
createdOn
instrumentMode
isDeleted
minResolutionMhz
modifiedOn
observationId
order integer
polarization
requestType string
sampleCount
spectroscopyWindows
status

RadioMappingRequestDetail

Name Type Description
active boolean
createdOn
currentSample integer
currentTask
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
minResolutionMhz
modifiedOn
observationId integer
observationUid
order integer
polarization
progressFraction number
requestType string
sampleCount integer
spectroscopyWindowIds Array<integer>
spectroscopyWindows Array<RadioSpectroscopyWindow>
status ObservationRequestStatus
uid string(uuid)

RadioMappingRequestPlan

Name Type Description
backendConfiguration RadioBackendConfiguration
constraints Array<string>
daisyDiameterDeg
densityAlongSweepsDeg number
densityBetweenPathsDeg number
instrumentId integer
isObservable boolean
mappingStrategy
requestId integer
requestType string
sampleCount integer
sizeXDeg
sizeYDeg
slewSpeedDegPerSec number
sweepDirection

RadioMappingRequestSummary

Name Type Description
active boolean
createdOn
currentSample integer
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
minResolutionMhz
modifiedOn
observationId integer
observationUid
order integer
polarization
progressFraction number
requestType string
sampleCount integer
spectroscopyWindowIds Array<integer>
spectroscopyWindows Array<RadioSpectroscopyWindow>
status ObservationRequestStatus
uid string(uuid)

RadioMappingRequestUpdate

Name Type Description
active
createdOn
instrumentMode
isDeleted
minResolutionMhz
modifiedOn
observationId
order
polarization
requestType string
sampleCount
spectroscopyWindows
status

RadioMappingSamplePoint

Name Type Description
index integer
x number
y number

RadioMappingStrategy

Type: string

RadioMappingTask

Name Type Description
actualEndTime
actualStartTime
antennaId integer
antennaUid
assetsRevision integer
centralFrequenciesMhz Array<number>
completedOn
daisyDurationSec
daisyRadialPeriodSec
daisyRadiusDeg
earliestStartTime
expirationTime
id integer
instrumentConfigurationVersion
instrumentId integer
instrumentUid
integrationTimeMs number
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
radioBackendId integer
radioBackendModeId integer
radioBackendUid
rasterDensityBetweenSweepsDeg
rasterSizeXDeg
rasterSizeYDeg
rasterSlewSpeedDegPerSec
rasterSweepDirection
receiverFeedIds Array<integer>
requestId integer
requestUid
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

RadioMappingTaskDetail

Name Type Description
actualEndTime
actualStartTime
antenna Antenna
antennaId integer
antennaUid
assetsRevision integer
centralFrequenciesMhz Array<number>
completedOn
daisyDurationSec
daisyRadialPeriodSec
daisyRadiusDeg
earliestStartTime
expirationTime
feeds Array<ReceiverFeed>
id integer
instrument RadioSpectrometerDetail
instrumentConfigurationVersion
instrumentId integer
instrumentUid
integrationTimeMs number
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
radioBackend RadioBackend
radioBackendId integer
radioBackendMode RadioBackendMode
radioBackendModeId integer
radioBackendUid
radioFilters Array<RadioFilter>
rasterDensityBetweenSweepsDeg
rasterSizeXDeg
rasterSizeYDeg
rasterSlewSpeedDegPerSec
rasterSweepDirection
request RadioMappingRequestDetail
requestId integer
requestUid
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
target Target
targetId
taskType string
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

RadioMappingTaskSummary

Name Type Description
actualEndTime
actualStartTime
antennaId integer
antennaUid
assetsRevision integer
centralFrequenciesMhz Array<number>
completedOn
daisyDurationSec
daisyRadialPeriodSec
daisyRadiusDeg
earliestStartTime
expirationTime
id integer
instrument
instrumentConfigurationVersion
instrumentId integer
instrumentUid
integrationTimeMs number
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
radioBackendId integer
radioBackendModeId integer
radioBackendUid
rasterDensityBetweenSweepsDeg
rasterSizeXDeg
rasterSizeYDeg
rasterSlewSpeedDegPerSec
rasterSweepDirection
receiverFeedIds Array<integer>
requestId integer
requestUid
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
totalPlannedDuration
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

RadioReceiverBand

Type: string

RadioReceiverSummary

Name Type Description
band Receiver band
id integer Receiver PK
maxFrequencyMhz number Maximum frequency (MHz)
minFrequencyMhz number Minimum frequency (MHz)
name string Receiver name

RadioSpectrometerConfiguration

Name Type Description
calCycles integer Number of on/off cycles each gain cal runs through
calDurationSec number Per-phase gain-cal duration (seconds): diode ON for this long, then OFF for this long
calLevel integer Noise-diode level injected during the ON phase (bounded by the receiver's available levels)
calMethod RadioGainCalibrationPlacement Where the gain cal sits relative to the science segment
focusStampIntervalSec number Cadence for stamping focuser position into the acquisition (seconds)
mountStampIntervalSec number Cadence for stamping actual mount pointing into the acquisition (seconds)
radioSpectrometerId integer Radio spectrometer ID
weatherStampIntervalSec number Cadence for stamping ambient temperature into the acquisition (seconds)

RadioSpectrometerDetail

Name Type Description
antenna Antenna details
antennaId Antenna PK
antennaUid Antenna UID
beamwidth Beamwidth (degrees)
configuration Radio spectrometer configuration (gain calibration)
configurationUpdatedOn string(date-time) Timestamp of last scheduling-relevant configuration update
configurationVersion integer Monotonic scheduling configuration version
focuser Focuser details
focuserId Focuser PK
focuserUid Focuser UID
id Instrument PK
instrumentType string Radio spectrometer
isActive boolean Is active?
name string Instrument name
receiverId Receiver PK (instrument membership)
receiverIds Receiver PKs
receivers Receivers
receiverSummaries Compact descriptors of the connected receivers
receiverUid Receiver UID
telescope Telescope
telescopeId integer Owning telescope PK
telescopeUid Owning telescope UID
uid string(uuid) Instrument UID

RadioSpectrometerWithoutTelescope

Name Type Description
antenna Antenna details
antennaId Antenna PK
antennaUid Antenna UID
beamwidth Beamwidth (degrees)
configuration Radio spectrometer configuration (gain calibration)
configurationUpdatedOn string(date-time) Timestamp of last scheduling-relevant configuration update
configurationVersion integer Monotonic scheduling configuration version
focuser Focuser details
focuserId Focuser PK
focuserUid Focuser UID
id Instrument PK
instrumentType string Radio spectrometer
isActive boolean Is active?
name string Instrument name
receiverId Receiver PK (instrument membership)
receiverIds Receiver PKs
receivers Receivers
receiverSummaries Compact descriptors of the connected receivers
receiverUid Receiver UID
telescope Telescope
telescopeId integer Owning telescope PK
telescopeUid Owning telescope UID
uid string(uuid) Instrument UID

RadioSpectroscopyWindow

Name Type Description
bandwidthMhz number
centerFrequencyMhz number
id integer
requestId integer

RadioSpectroscopyWindowCreate

Name Type Description
bandwidthMhz number
centerFrequencyMhz number

RadioSpectroscopyWindowUpdate

Name Type Description
bandwidthMhz
centerFrequencyMhz
id

RadioTrackingConfiguration

Name Type Description
coordinateUnit
maxSunElevationDeg number
minElevationDeg number
minSunSeparationDeg number
offOffsetX
offOffsetY
trackingStrategy RadioTrackingStrategy

RadioTrackingConfigurationPlan

Name Type Description
offOffsetX
offOffsetY

RadioTrackingContinuumDataTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
observationId
priority integer
projectId
startedOn
status JobStatus
totalStages

RadioTrackingContinuumDataToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

RadioTrackingContinuumDataToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

RadioTrackingObservationAssetTaskInfoDetail

Name Type Description
durationSec
observationAssetId
observationAssetUid
task
taskId integer
taskType string
taskUid
uid string(uuid)

RadioTrackingRequest

Name Type Description
active boolean
createdOn
currentSample integer
durationSec number
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
maxIntegrationTimeMs
minResolutionMhz
modifiedOn
observationId integer
observationUid
order integer
polarization
progressFraction number
recordMode RadioBackendRecordMode
requestType string
requireContinuum boolean
sampleCount integer
spectroscopyWindowIds Array<integer>
status ObservationRequestStatus
uid string(uuid)

RadioTrackingRequestCreate

Name Type Description
active
createdOn
durationSec number
instrumentMode
isDeleted
maxIntegrationTimeMs
minResolutionMhz
modifiedOn
observationId
order integer
polarization
recordMode RadioBackendRecordMode
requestType string
requireContinuum boolean
sampleCount
spectroscopyWindows
status

RadioTrackingRequestDetail

Name Type Description
active boolean
createdOn
currentSample integer
currentTask
durationSec number
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
maxIntegrationTimeMs
minResolutionMhz
modifiedOn
observationId integer
observationUid
order integer
polarization
progressFraction number
recordMode RadioBackendRecordMode
requestType string
requireContinuum boolean
sampleCount integer
spectroscopyWindowIds Array<integer>
spectroscopyWindows Array<RadioSpectroscopyWindow>
status ObservationRequestStatus
uid string(uuid)

RadioTrackingRequestPlan

Name Type Description
backendConfiguration RadioBackendConfiguration
constraints Array<string>
durationSec number
instrumentId integer
isObservable boolean
requestId integer
requestType string
sampleCount integer

RadioTrackingRequestSummary

Name Type Description
active boolean
createdOn
currentSample integer
durationSec number
id integer
instrumentMode InstrumentAccessMode
isDeleted boolean
maxIntegrationTimeMs
minResolutionMhz
modifiedOn
observationId integer
observationUid
order integer
polarization
progressFraction number
recordMode RadioBackendRecordMode
requestType string
requireContinuum boolean
sampleCount integer
spectroscopyWindowIds Array<integer>
spectroscopyWindows Array<RadioSpectroscopyWindow>
status ObservationRequestStatus
uid string(uuid)

RadioTrackingRequestUpdate

Name Type Description
active
createdOn
durationSec
instrumentMode
isDeleted
maxIntegrationTimeMs
minResolutionMhz
modifiedOn
observationId
order
polarization
recordMode
requestType string
requireContinuum
sampleCount
spectroscopyWindows
status

RadioTrackingSpectrumDataTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
observationId
priority integer
projectId
startedOn
status JobStatus
totalStages

RadioTrackingSpectrumDataToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

RadioTrackingSpectrumDataToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

RadioTrackingStrategy

Type: string

RadioTrackingTask

Name Type Description
actualEndTime
actualStartTime
antennaId integer
antennaUid
assetsRevision integer
centralFrequenciesMhz Array<number>
completedOn
durationSec number
earliestStartTime
expirationTime
id integer
instrumentConfigurationVersion
instrumentId integer
instrumentUid
integrationTimeMs number
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
offOffsetXDeg
offOffsetYDeg
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
radioBackendId integer
radioBackendModeId integer
radioBackendUid
receiverFeedIds Array<integer>
requestId integer
requestUid
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
totalPlannedDuration
trackingStrategy RadioTrackingStrategy
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

RadioTrackingTaskDetail

Name Type Description
actualEndTime
actualStartTime
antenna Antenna
antennaId integer
antennaUid
assetsRevision integer
centralFrequenciesMhz Array<number>
completedOn
durationSec number
earliestStartTime
expirationTime
feeds Array<ReceiverFeed>
id integer
instrument RadioSpectrometerDetail
instrumentConfigurationVersion
instrumentId integer
instrumentUid
integrationTimeMs number
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
offOffsetXDeg
offOffsetYDeg
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
radioBackend RadioBackend
radioBackendId integer
radioBackendMode RadioBackendMode
radioBackendModeId integer
radioBackendUid
radioFilters Array<RadioFilter>
receivers Array<ReceiverDetail>
request RadioTrackingRequestDetail
requestId integer
requestUid
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
target Target
targetId
taskType string
totalPlannedDuration
trackingStrategy RadioTrackingStrategy
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

RadioTrackingTaskSummary

Name Type Description
actualEndTime
actualStartTime
antennaId integer
antennaUid
assetsRevision integer
centralFrequenciesMhz Array<number>
completedOn
durationSec number
earliestStartTime
expirationTime
id integer
instrument
instrumentConfigurationVersion
instrumentId integer
instrumentUid
integrationTimeMs number
modifiedOn string(date-time)
observationId integer
observationUid
observingGrantId
observingGrantUid
offOffsetXDeg
offOffsetYDeg
plannedDuration
plannedStartTime
progressFraction number
queueAccessGrantId
queueAccessGrantUid
radioBackendId integer
radioBackendModeId integer
radioBackendUid
receiverFeedIds Array<integer>
requestId integer
requestUid
resultId integer
resultUid
schedulerRunId
schedulerRunUid
status ObservationTaskStatus
statusMessage
statusReasonCode
targetId
taskType string
totalPlannedDuration
trackingStrategy RadioTrackingStrategy
uid string(uuid)
windowInfeasibilityAction WindowInfeasibilityAction

Receiver

Name Type Description
attenuationMaxDb Maximum adjustable attenuation (dB); null if no attenuator
attenuationMinDb Minimum adjustable attenuation (dB); null if no attenuator
attenuationStepDb Attenuation step (dB); 0/null = continuously variable
availableNoiseDiodeLevels integer Distinct non-zero noise-diode injection levels (0 = none, 1 = on/off, 2 = off/lo/hi)
band Receiver band
deviceType string
feeds Array<ReceiverFeed> Receiver feeds
id integer Receiver PK
imageId Image asset ID for the device.
isAvailable boolean Is receiver available?
localOscillatorMaxFrequencyMhz Maximum achievable window-center sky frequency via LO tuning (MHz); null if fixed-tuned
localOscillatorMinFrequencyMhz Minimum achievable window-center sky frequency via LO tuning (MHz); null if fixed-tuned
manufacturer
maxFrequencyMhz number Maximum frequency (MHz)
minFrequencyMhz number Minimum frequency (MHz)
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
polarization ReceiverPolarizationSpecification Polarization capability of the receiver front-end (shared by its feeds)
radioFilters Array<RadioFilter> Radio filters available on this receiver
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
temperatureSetpointK Cryogenic cooling setpoint (K); null if uncooled
temperatureSetpointToleranceK Cooling setpoint tolerance (K); null if uncooled
uid string(uuid) The unique UID for the device.

ReceiverDetail

Name Type Description
attenuationMaxDb Maximum adjustable attenuation (dB); null if no attenuator
attenuationMinDb Minimum adjustable attenuation (dB); null if no attenuator
attenuationStepDb Attenuation step (dB); 0/null = continuously variable
availableNoiseDiodeLevels integer Distinct non-zero noise-diode injection levels (0 = none, 1 = on/off, 2 = off/lo/hi)
band Receiver band
deviceType string
feeds Array<ReceiverFeed> Receiver feeds
id integer Receiver PK
imageId Image asset ID for the device.
isAvailable boolean Is receiver available?
localOscillatorMaxFrequencyMhz Maximum achievable window-center sky frequency via LO tuning (MHz); null if fixed-tuned
localOscillatorMinFrequencyMhz Minimum achievable window-center sky frequency via LO tuning (MHz); null if fixed-tuned
manufacturer
maxFrequencyMhz number Maximum frequency (MHz)
minFrequencyMhz number Minimum frequency (MHz)
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintActions Array<OperationalConstraintAction>
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
polarization ReceiverPolarizationSpecification Polarization capability of the receiver front-end (shared by its feeds)
radioFilters Array<RadioFilter> Radio filters available on this receiver
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
temperatureSetpointK Cryogenic cooling setpoint (K); null if uncooled
temperatureSetpointToleranceK Cooling setpoint tolerance (K); null if uncooled
uid string(uuid) The unique UID for the device.

ReceiverFeed

Name Type Description
feedBackendConnections Array<ReceiverFeedBackendConnection> Feed to backend connections
id integer Receiver feed PK
isActive boolean Is active?
offsetXArcsec number Offset in X (arcsec)
offsetYArcsec number Offset in Y (arcsec)
receiverId integer Receiver PK

ReceiverFeedBackendConnection

Name Type Description
id integer Connection PK
isActive boolean Is active?
radioBackendId integer Radio backend PK
receiverFeedId integer Receiver feed PK

ReceiverPolarizationSpecification

Type: string

RemoteAssetTransferState

Type: string

RenderNormalization

Name Type Description
backgroundPercentile number Percentile used for the background level.
midtonePercentile number Percentile used for the midtone level.
saturationPercentile number Percentile used for the saturation level.
stretch string Stretch algorithm to apply.

RenderPalette

Name Type Description
colormap string Colormap name.
invert boolean Whether to invert the colormap.
nan string How to render NaN values.

RenderSettings

Name Type Description
normalization RenderNormalization
rendering RenderPalette
schemaVersion integer Render settings schema version.

RepointingStrategy

Type: string

ResultFulfillmentStatus

Type: string

SampleOrdering

Type: string

ScheduleRung

Type: string

SiteSummary

Name Type Description
countryCode string
elevationM number
iauCode
id
latitudeDeg number
location string
longitudeDeg number
name string
owner
ownerId
slug string
uid string(uuid)

SkyBrightnessModel

Name Type Description
id integer Primary key
modelType string

SkyBrightnessModelCreate

Name Type Description
modelType string

SkynetStorageType

Type: string

SolveFilterPolicy

Type: string

SourceBrightnessModel

Name Type Description
avMag number Absolute V-band extinction
filter
filterId Filter used as reference
id integer Primary key
isPointSource boolean True if point source, False if extended
magnitudeMag number Point source magnitude or extended source surface brightness
modelType string
rv number Ratio of total to selective extinction
spectralComponent
spectralComponentId Associated spectral component
temporalComponent
temporalComponentId Associated temporal component

SourceBrightnessModelCreate

Name Type Description
avMag Absolute V-band extinction
filterId Filter used as reference
isPointSource True if point source, False if extended
magnitudeMag number Point source magnitude or extended source surface brightness
modelType string
rv Ratio of total to selective extinction
spectralComponentId Associated spectral component
temporalComponentId Associated temporal component

SpecEnvelope

Name Type Description
data
schemaKind string
schemaVersion integer

SpectralComposerTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
observationId
priority integer
projectId
startedOn
status JobStatus
totalStages

SpectralComposerToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

SpectralComposerToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

StreamKind

Type: string

StreamQuality

Type: string

SunAltitudeOpenCondition

Type: string

Target

Name Type Description
id integer Primary key for the Target
isDeleted boolean Flag indicating if the target is deleted
name string Name of the Target
positionId Primary key of the target's position. Resolved through the graph bundle's `target_positions` map.
positionOffsetFrame ObservationPositionOffsetFrame
positionOffsetReferenceTime
positionOffsetXDeg number
positionOffsetYDeg number
status TargetStatus Status of the target
targetPosition

TargetCreate

Name Type Description
isDeleted
name string
position
positionOffsetFrame ObservationPositionOffsetFrame
positionOffsetReferenceTime
positionOffsetXDeg number
positionOffsetYDeg number
status

TargetEphemeris

Name Type Description
entries Array<TargetEphemerisEntry>
frame
representation

TargetEphemerisEntry

Name Type Description
distanceAu
epoch string(date-time)
latDeg number
lonDeg number

TargetPositionType

Type: string

TargetSortField

Type: string

TargetStatus

Type: string

TargetUpdate

Name Type Description
isDeleted
name
position
positionOffsetFrame
positionOffsetReferenceTime
positionOffsetXDeg
positionOffsetYDeg
status

TelescopeAccessGrant

Name Type Description
entityId
id integer
revoked boolean
shares number
telescopeId integer
timeContested number
timeUsed number
timeWaiting number

TelescopeDetail

Name Type Description
antennaIds
antennas Array<AntennaDetail>
calibrationObservingAccountId
cameraIds
cameras Array<CameraDetail>
description
deviceIds
elevationM number
enclosure
enclosureId
enclosureUid
filterWheelIds
filterWheels Array<FilterWheelDetail>
focuserIds
focusers Array<FocuserDetail>
galleryItemIds
galleryItems
iauCode
id
imageId
instrumentIds
instruments Array<>
ipCameraIds
ipCameras Array<IPCamera>
isAvailable boolean
isPublic boolean
latitudeDeg number
localHorizon
location string
longitudeDeg number
mount
mountId
mountUid
name string
observatory
observatoryId integer
observatoryUid
otaIds
otas Array<OtaDetail>
owner
ownerId integer
publicLatitudeDeg
publicLongitudeDeg
radioBackendIds
radioBackends Array<RadioBackendDetail>
receiverIds
receivers Array<ReceiverDetail>
rotatorIds
rotators Array<InstrumentRotatorDetail>
shortName
slug string
uid string(uuid)

TelescopeGalleryItem

Name Type Description
file
fileId string(uuid)
id integer
order
telescopeId integer
visibility boolean

TelescopeLtd

Name Type Description
antennaIds
calibrationObservingAccountId
cameraIds
description
deviceIds
elevationM number
enclosureId
enclosureUid
filterWheelIds
focuserIds
galleryItemIds
iauCode
id
imageId
instrumentIds
ipCameraIds
isAvailable boolean
isPublic boolean
latitudeDeg number
location string
longitudeDeg number
mountId
mountUid
name string
observatoryId integer
observatoryUid
otaIds
ownerId integer
publicLatitudeDeg
publicLongitudeDeg
radioBackendIds
receiverIds
rotatorIds
shortName
slug string
uid string(uuid)

TelescopeSummary

Name Type Description
antennaIds
calibrationObservingAccountId
cameraIds
description
deviceIds
elevationM number
enclosureId
enclosureUid
filterWheelIds
focuserIds
galleryItemIds
iauCode
id
imageId
instrumentIds
ipCameraIds
isAvailable boolean
isPublic boolean
latitudeDeg number
localHorizon
location string
longitudeDeg number
mountId
mountUid
name string
observatory
observatoryId integer
observatoryUid
otaIds
owner
ownerId integer
publicLatitudeDeg
publicLongitudeDeg
radioBackendIds
receiverIds
rotatorIds
shortName
slug string
uid string(uuid)

TimeLapseCreatorTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
observationId
priority integer
projectId
startedOn
status JobStatus
totalStages

TimeLapseCreatorToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

TimeLapseCreatorToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

TimeSeriesPhotometryTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
objects Array<TimeSeriesPhotometryToolObject>
observationId
priority integer
projectId
stacks Array<TimeSeriesPhotometryToolExposureStack>
startedOn
status JobStatus
totalStages

TimeSeriesPhotometryToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

TimeSeriesPhotometryToolExposureStack

Name Type Description
dataToolId integer
effectiveTime
id integer

TimeSeriesPhotometryToolObject

Name Type Description
catalogObjectId
dataToolId integer
decDeg number
epoch
id integer
name string
parallaxMas
pmDecMasPerYear
pmRaMasPerYear
raDeg number
radialVelocityKmPerSec

TimeSeriesPhotometryToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

TopocentricCoordinates

Name Type Description
coordinateType string Type of the coordinate system
decDeg number Topocentric or observed declination in degrees
epoch Epoch of observation
haDeg number Topocentric or observed hour angle in degrees
id integer Primary key for the TargetCoordinates
pmDecArcsecPerSec Proper motion in Dec in arcsec/s
pmHaArcsecPerSec Proper motion in HA times cos(Dec) in arcsec/s
refraction boolean Coordinates need correction for refraction? False = observed (refraction-corrected), true = topocentric

TopocentricCoordinatesCreate

Name Type Description
coordinateType string Type of the coordinate system
decDeg number Topocentric or observed declination in degrees
epoch Epoch of observation
haDeg number Topocentric or observed hour angle in degrees
pmDecArcsecPerSec Proper motion in Dec in arcsec/s
pmHaArcsecPerSec Proper motion in HA times cos(Dec) in arcsec/s
refraction boolean Coordinates need correction for refraction? False = observed (refraction-corrected), true = topocentric

TopocentricCoordinatesUpdate

Name Type Description
coordinateType string Type of the coordinate system
decDeg Topocentric or observed declination in degrees
epoch Epoch of observation
haDeg Topocentric or observed hour angle in degrees
pmDecArcsecPerSec Proper motion in Dec in arcsec/s
pmHaArcsecPerSec Proper motion in HA times cos(Dec) in arcsec/s
refraction Coordinates need correction for refraction? False = observed (refraction-corrected), true = topocentric

TransientDetectorTool

Name Type Description
completedOn
createdOn string(date-time)
creatorId integer
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
id integer
name string
observationId
priority integer
projectId
startedOn
status JobStatus
totalStages

TransientDetectorToolCreate

Name Type Description
dataToolType string
name string
observationId
priority
projectId

TransientDetectorToolUpdate

Name Type Description
completedOn
currentStage
currentStageIndex
currentStageProgressFraction
dataToolType string
errorMessages
name
observationId
priority
projectId
startedOn
status
totalStages

User

Name Type Description
affiliation Affiliation provided by the user in their public profile
age Age of the user
birthdate Birthdate provided by the user in their public profile
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
description Description/Bio provided by the user or organization in their public profile
entityType string
facebookId Facebook ID provided by the user in their public profile
firstName First name of the user
githubId GitHub ID provided by the user in their public profile
id integer Unique identifier of the user/organization.
language Language provided by the user or organization in their public profile
lastName Last name of the user
linkedinId LinkedIn ID provided by the user in their public profile
location Location provided by the user or organization in their public profile
name string Name of the user/organization.
orcidId OAuth-verified ORCID iD shown on the public profile
orcidVerifiedAt When the ORCID iD was verified via OAuth (null = no verified iD)
profileImageId Profile image of the user/organization.
slug string Unique identifier used in URLs referencing the user/organization.
title Title provided by the user in their public profile
twitterId Twitter ID provided by the user in their public profile
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
username string Username of the user
websiteUrl Website URL provided by the user or organization in their public profile

UserPublic

Name Type Description
affiliation Affiliation provided by the user in their public profile
age Age of the user
birthdate Birthdate provided by the user in their public profile
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
description Description/Bio provided by the user or organization in their public profile
entityType string
facebookId Facebook ID provided by the user in their public profile
firstName First name of the user
githubId GitHub ID provided by the user in their public profile
id integer Unique identifier of the user/organization.
language Language provided by the user or organization in their public profile
lastName Last name of the user
linkedinId LinkedIn ID provided by the user in their public profile
location Location provided by the user or organization in their public profile
name string Name of the user/organization.
orcidId OAuth-verified ORCID iD shown on the public profile
orcidVerifiedAt When the ORCID iD was verified via OAuth (null = no verified iD)
profileImageId Profile image of the user/organization.
slug string Unique identifier used in URLs referencing the user/organization.
title Title provided by the user in their public profile
twitterId Twitter ID provided by the user in their public profile
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
username string Username of the user
websiteUrl Website URL provided by the user or organization in their public profile

UserSummary

Name Type Description
affiliation Affiliation provided by the user in their public profile
age Age of the user
birthdate Birthdate provided by the user in their public profile
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
description Description/Bio provided by the user or organization in their public profile
entityType string
facebookId Facebook ID provided by the user in their public profile
firstName First name of the user
githubId GitHub ID provided by the user in their public profile
id integer Unique identifier of the user/organization.
language Language provided by the user or organization in their public profile
lastName Last name of the user
linkedinId LinkedIn ID provided by the user in their public profile
location Location provided by the user or organization in their public profile
name string Name of the user/organization.
orcidId OAuth-verified ORCID iD shown on the public profile
orcidVerifiedAt When the ORCID iD was verified via OAuth (null = no verified iD)
profileImageId Profile image of the user/organization.
slug string Unique identifier used in URLs referencing the user/organization.
title Title provided by the user in their public profile
twitterId Twitter ID provided by the user in their public profile
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
username string Username of the user
websiteUrl Website URL provided by the user or organization in their public profile

UserWithEmail

Name Type Description
affiliation Affiliation provided by the user in their public profile
age Age of the user
birthdate Birthdate provided by the user in their public profile
country Country provided by the user or organization in their public profile
createdOn Creation time of this account
description Description/Bio provided by the user or organization in their public profile
email string Email address of the user
entityType string Type of entity (user/organization)
facebookId Facebook ID provided by the user in their public profile
firstName First name of the user
githubId GitHub ID provided by the user in their public profile
id integer Unique identifier of the user/organization.
language Language provided by the user or organization in their public profile
lastName Last name of the user
linkedinId LinkedIn ID provided by the user in their public profile
location Location provided by the user or organization in their public profile
name string Name of the user/organization.
orcidId OAuth-verified ORCID iD shown on the public profile
orcidVerifiedAt When the ORCID iD was verified via OAuth (null = no verified iD)
profileImageId Profile image of the user/organization.
slug string Unique identifier used in URLs referencing the user/organization.
title Title provided by the user in their public profile
twitterId Twitter ID provided by the user in their public profile
uid string(uuid) Stable, opaque universally-unique identifier for the user/organization. Prefer this over the integer `id` for cross-system references (e.g. it is the OIDC `sub`). See docs/internal/design/auth/AUTH_OIDC_PROVIDER_DESIGN.md and the UID-migration directive.
username string Username of the user
websiteUrl Website URL provided by the user or organization in their public profile

ValidationError

Name Type Description
ctx
input
loc Array<>
msg string
type string

WeatherSensor

Name Type Description
deviceType string
hasAmbientTemperature boolean
hasCloudTemperatureDeltaC boolean
hasHumidity boolean
hasLightLevel boolean
hasLightningDistance boolean
hasPressure boolean
hasRainDistance boolean
hasRainRate boolean
hasRainStorm boolean
hasSurfaceWetness boolean
hasWindDirection boolean
hasWindSpeedAvg10Min boolean
hasWindSpeedAvg1Min boolean
hasWindSpeedAvg2Min boolean
hasWindSpeedInstantaneous boolean
hasWindSpeedPeak10Min boolean
hasWindSpeedPeak1Min boolean
hasWindSpeedPeak2Min boolean
id The unique identifier for the device.
imageId Image asset ID for the device.
manufacturer
modelId
name The name of the device.
observatoryId The observatory ID this device belongs to.
observatoryUid The observatory UID this device belongs to.
operationalConstraintIds Operational constraint PKs
ownerId integer The organization or user which owns the device.
serialNumber Serial number for the device.
telescopeId The telescope ID this device belongs to.
telescopeUid The telescope UID this device belongs to.
uid string(uuid) The unique UID for the device.

WindowInfeasibilityAction

Type: string