Stellar ControlMission control · by Stellar Systems v0.1.0

API Reference

Schedules

Runs scheduled on passes, and the recurring rules that schedule them.

GET/v1/schedules

List schedules#

Schedules

The schedules not final (scheduled, at_risk), every one with all (fired, missed, cancelled too).

Query parameters

pass

string

Only the schedules of this pass.

all

boolean

Final schedules too.

Responses

200Schedules, by start.application/json
schedulesrequired

array of Schedule

Schedules, by start.

Schedule · 20 fields
by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/schedules"

Response

{
  "schedules": [
    {
      "by": "string",
      "environment": "string",
      "fire_at": "string",
      "id": "string",
      "inputs": {},
      "ir": "string",
      "library": "string",
      "max_duration": "string",
      "needs_validation": false,
      "pass": "string",
      "reasons": [
        "string"
      ],
      "run": "string",
      "run_id": "string",
      "sends": false,
      "start": "string",
      "state": "scheduled",
      "target": "string",
      "targets": {
        "key": "string"
      },
      "updated_at": "string",
      "validation": {
        "aos": "string",
        "at": "string",
        "by": "string",
        "ir": "string",
        "los": "string",
        "pass": "string"
      }
    }
  ]
}
POST/v1/schedules

Create schedule#

Schedule a run on a pass

Resolves the run request on the current configuration with plan = the pass, stores the resolved run and keeps its maximum duration. The runs of a pass must fit between their start and LOS minus scheduler.margin, in order; in in_orbit, the pass must be booked. A schedule not fired yet can be replaced under the same identifier. A schedule whose run sends a hazardous telecommand where a supervisor confirms needs a validation (needs_validation).

Request body application/jsonrequired

by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

Responses

201The schedule as stored, with its state.application/json
by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

401Identity required by the environment.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

422Invalid, unresolved or refused schedule: schedule::invalid, schedule::refused.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X POST "http://localhost:8080/v1/schedules" \
  -H "Content-Type: application/json" \
  -d '{
  "by": "string",
  "environment": "string",
  "fire_at": "string",
  "id": "string",
  "inputs": {},
  "ir": "string",
  "library": "string",
  "max_duration": "string",
  "needs_validation": false,
  "pass": "string",
  "reasons": [
    "string"
  ],
  "run": "string",
  "run_id": "string",
  "sends": false,
  "start": "string",
  "state": "scheduled",
  "target": "string",
  "targets": {
    "key": "string"
  },
  "updated_at": "string",
  "validation": {
    "aos": "string",
    "at": "string",
    "by": "string",
    "ir": "string",
    "los": "string",
    "pass": "string"
  }
}'

Response

{
  "by": "string",
  "environment": "string",
  "fire_at": "string",
  "id": "string",
  "inputs": {},
  "ir": "string",
  "library": "string",
  "max_duration": "string",
  "needs_validation": false,
  "pass": "string",
  "reasons": [
    "string"
  ],
  "run": "string",
  "run_id": "string",
  "sends": false,
  "start": "string",
  "state": "scheduled",
  "target": "string",
  "targets": {
    "key": "string"
  },
  "updated_at": "string",
  "validation": {
    "aos": "string",
    "at": "string",
    "by": "string",
    "ir": "string",
    "los": "string",
    "pass": "string"
  }
}
GET/v1/schedules/{id}

Get schedule#

A schedule

Path parameters

idrequired

string

Schedule identifier.

Responses

200The schedule.application/json
by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

404No such schedule: schedule::unknown.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/schedules/<id>"

Response

{
  "by": "string",
  "environment": "string",
  "fire_at": "string",
  "id": "string",
  "inputs": {},
  "ir": "string",
  "library": "string",
  "max_duration": "string",
  "needs_validation": false,
  "pass": "string",
  "reasons": [
    "string"
  ],
  "run": "string",
  "run_id": "string",
  "sends": false,
  "start": "string",
  "state": "scheduled",
  "target": "string",
  "targets": {
    "key": "string"
  },
  "updated_at": "string",
  "validation": {
    "aos": "string",
    "at": "string",
    "by": "string",
    "ir": "string",
    "los": "string",
    "pass": "string"
  }
}
POST/v1/schedules/{id}/cancel

Cancel schedule#

Cancel a schedule

Cancels a schedule not final yet, as the operator of X-Stellar-User.

Path parameters

idrequired

string

Schedule identifier.

Responses

200The cancelled schedule.application/json
by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

404No such schedule.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

409Already final (schedule::final), or changed meanwhile (schedule::changed).application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X POST "http://localhost:8080/v1/schedules/<id>/cancel"

Response

{
  "by": "string",
  "environment": "string",
  "fire_at": "string",
  "id": "string",
  "inputs": {},
  "ir": "string",
  "library": "string",
  "max_duration": "string",
  "needs_validation": false,
  "pass": "string",
  "reasons": [
    "string"
  ],
  "run": "string",
  "run_id": "string",
  "sends": false,
  "start": "string",
  "state": "scheduled",
  "target": "string",
  "targets": {
    "key": "string"
  },
  "updated_at": "string",
  "validation": {
    "aos": "string",
    "at": "string",
    "by": "string",
    "ir": "string",
    "los": "string",
    "pass": "string"
  }
}
POST/v1/schedules/{id}/validate

Validate schedule#

Validate the plan of a schedule (supervisor)

A supervisor validates the plan of a schedule as it is: its resolved run (procedure, inputs, targets), its pass, and the AOS and LOS of the pass. Any later change of them makes the validation fall, and the schedule is at_risk again.

Path parameters

idrequired

string

Schedule identifier.

Responses

200The validated schedule.application/json
by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

401No identity, or refused by the environment.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

403Not a supervisor: schedule::not-supervisor.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

404No such schedule.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

422Refused: schedule::refused.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X POST "http://localhost:8080/v1/schedules/<id>/validate"

Response

{
  "by": "string",
  "environment": "string",
  "fire_at": "string",
  "id": "string",
  "inputs": {},
  "ir": "string",
  "library": "string",
  "max_duration": "string",
  "needs_validation": false,
  "pass": "string",
  "reasons": [
    "string"
  ],
  "run": "string",
  "run_id": "string",
  "sends": false,
  "start": "string",
  "state": "scheduled",
  "target": "string",
  "targets": {
    "key": "string"
  },
  "updated_at": "string",
  "validation": {
    "aos": "string",
    "at": "string",
    "by": "string",
    "ir": "string",
    "los": "string",
    "pass": "string"
  }
}
GET/v1/schedule-rules

List schedule rules#

Recurring rules

Responses

200Rules, by identifier.application/json
rulesrequired

array of ScheduleRule

Rules, by identifier.

ScheduleRule · 10 fields
by

string

Who created it.

environment

string

Environment; by default the last environment of the target.

filter

PassFilter

Passes it applies to.

PassFilter · 4 fields
min_elevation

string

Lowest maximum elevation (20 deg).

station

string

Ground station.

status

one of PassStatus | null

Status of the pass (booked).

uplink

boolean

Whether the pass must allow the uplink.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

library

string

Library of the procedure, when several have a procedure of that name.

runrequired

string

Procedure.

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

targetrequired

string

Target of the passes.

targetsrequired

map of string

Target of each role.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/schedule-rules"

Response

{
  "rules": [
    {
      "by": "string",
      "environment": "string",
      "filter": {
        "min_elevation": "string",
        "station": "string",
        "status": null,
        "uplink": true
      },
      "id": "string",
      "inputs": {},
      "library": "string",
      "run": "string",
      "start": "string",
      "target": "string",
      "targets": {
        "key": "string"
      }
    }
  ]
}
POST/v1/schedule-rules

Create schedule rule#

Write a recurring rule

A rule that schedules its run on every pass of its target matching its filter (status, min_elevation, station, uplink), as the scheduler sees the passes arrive. Its request is resolved on the current configuration; a procedure that sends a hazardous telecommand is refused.

Request body application/jsonrequired

by

string

Who created it.

environment

string

Environment; by default the last environment of the target.

filter

PassFilter

Passes it applies to.

PassFilter · 4 fields
min_elevation

string

Lowest maximum elevation (20 deg).

station

string

Ground station.

status

one of PassStatus | null

Status of the pass (booked).

uplink

boolean

Whether the pass must allow the uplink.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

library

string

Library of the procedure, when several have a procedure of that name.

runrequired

string

Procedure.

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

targetrequired

string

Target of the passes.

targetsrequired

map of string

Target of each role.

Responses

201The rule as stored.application/json
by

string

Who created it.

environment

string

Environment; by default the last environment of the target.

filter

PassFilter

Passes it applies to.

PassFilter · 4 fields
min_elevation

string

Lowest maximum elevation (20 deg).

station

string

Ground station.

status

one of PassStatus | null

Status of the pass (booked).

uplink

boolean

Whether the pass must allow the uplink.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

library

string

Library of the procedure, when several have a procedure of that name.

runrequired

string

Procedure.

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

targetrequired

string

Target of the passes.

targetsrequired

map of string

Target of each role.

422Invalid or refused rule: schedule::invalid, schedule::refused.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X POST "http://localhost:8080/v1/schedule-rules" \
  -H "Content-Type: application/json" \
  -d '{
  "by": "string",
  "environment": "string",
  "filter": {
    "min_elevation": "string",
    "station": "string",
    "status": "predicted",
    "uplink": true
  },
  "id": "string",
  "inputs": {},
  "library": "string",
  "run": "string",
  "start": "string",
  "target": "string",
  "targets": {
    "key": "string"
  }
}'

Response

{
  "by": "string",
  "environment": "string",
  "filter": {
    "min_elevation": "string",
    "station": "string",
    "status": "predicted",
    "uplink": true
  },
  "id": "string",
  "inputs": {},
  "library": "string",
  "run": "string",
  "start": "string",
  "target": "string",
  "targets": {
    "key": "string"
  }
}
DELETE/v1/schedule-rules/{id}

Delete schedule rule#

Remove a recurring rule

No new schedule from the rule; the schedules it made remain.

Path parameters

idrequired

string

Rule identifier.

Responses

204Removed.
404No such rule: schedule::unknown-rule.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X DELETE "http://localhost:8080/v1/schedule-rules/<id>"

Response

{
  "errors": [
    {
      "code": "string",
      "message": "string",
      "help": "string"
    }
  ]
}
GET/v1/schedules/watch

Watch schedules#

Watch the schedules (WebSocket)

Sends every schedule, then each one that changes (scheduled, at risk, cancelled, fired, missed).

Query parameters

target

string

Only the schedules on the passes of this target.

Responses

101WebSocket: one Schedule per message.application/json
by

string

Who created it.

environment

string

Environment; by default the last environment of the target of the pass.

fire_at

string

Start time from the current pass, set by the MCS.

idrequired

string

Identifier.

inputs

object

Input values, as written in a run request.

ir

string

Hash of the resolved run, set by the MCS.

library

string

Library of the procedure, when several have a procedure of that name.

max_duration

string

Maximum duration of the run, set by the MCS.

needs_validation

boolean

Whether a supervisor must validate the plan before it starts: a hazardous telecommand in an environment where the supervisor confirms. Set by the MCS.

default false

passrequired

string

Pass.

reasons

array of string

Why at risk, cancelled or missed.

runrequired

string

Procedure.

run_id

string

Run submitted, set by the MCS.

sends

boolean

Whether the run sends telecommands, set by the MCS.

default false

startrequired

string

Start relative to the AOS: aos, aos + 30 s.

state

ScheduleState

State, set by the MCS.

target

string

Target of the pass, set by the MCS.

targetsrequired

map of string

Target of each role.

updated_at

string

Last change.

validation

one of PlanValidation | null

Validation of the plan, while it holds.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/schedules/watch"

Response

{
  "by": "string",
  "environment": "string",
  "fire_at": "string",
  "id": "string",
  "inputs": {},
  "ir": "string",
  "library": "string",
  "max_duration": "string",
  "needs_validation": false,
  "pass": "string",
  "reasons": [
    "string"
  ],
  "run": "string",
  "run_id": "string",
  "sends": false,
  "start": "string",
  "state": "scheduled",
  "target": "string",
  "targets": {
    "key": "string"
  },
  "updated_at": "string",
  "validation": {
    "aos": "string",
    "at": "string",
    "by": "string",
    "ir": "string",
    "los": "string",
    "pass": "string"
  }
}

↑↓ to moveEnter to open