Skip to main content
PATCH
Error

Path Parameters

id
string
required

Spacecraft identifier (UUID)

Body

application/json

Request payload for partially updating a spacecraft. Only provided fields will be updated.

absorption
number<double>

Optical absorption coefficient α (dimensionless). Range (0.0, 1.0].

Required range: 0 < x < 1
Example:

0.4

bodyShape
enum<string>

Spacecraft body-shape primitive (DKR-2 §2.1). Nullable on update — omit to leave the persisted value unchanged.

Available options:
BOX,
REGULAR_PRISM
Example:

"BOX"

boxX
number<double>

Spacecraft box/bus X dimension (width) in meters

Required range: 0.001 < x < 1000
Example:

1.5

boxY
number<double>

Spacecraft box/bus Y dimension (height) in meters

Required range: 0.001 < x < 1000
Example:

1

boxZ
number<double>

Spacecraft box/bus Z dimension (length) in meters

Required range: 0.001 < x < 1000
Example:

2

clearColor
boolean

If true, clears the color (sets to null)

Example:

false

clearCosparId
boolean

If true, clears the COSPAR ID (sets to null)

Example:

false

clearDryMass
boolean

If true, clears the dry mass (sets to null)

Example:

false

clearInertiaTensor
boolean

If true, clears the three principal moments (sets to null)

Example:

false

clearNoradId
boolean

If true, clears the NORAD ID (sets to null)

Example:

false

color
string

Spacecraft color in hex format (with or without #)

Pattern: ^#?[0-9A-Fa-f]{6}$
Example:

"#FF5733"

cosparId
string

COSPAR international designator

Maximum string length: 20
Pattern: ^\d{4}-\d{1,3}[A-HJ-NP-Z]{1,15}$
Example:

"2024-001A"

dragArea
number<double>

Operator-typed drag cross-sectional area in m² (DKR-1 §3.6a).

Required range: 0 < x < 10000
Example:

5

dragCoefficient
number<double>

Drag coefficient (typical values: 1.0-3.0)

Required range: 0.1 < x < 10
Example:

2.2

dryMass
number<double>

Mass without propellant in kg

Required range: 0.001 < x < 100000
Example:

450

inertiaIxx
number<double>

Principal moment of inertia about the body's primary principal axis (kg·m²). Optional.

Example:

1500

inertiaIyy
number<double>

Principal moment of inertia about the body's secondary principal axis (kg·m²). Optional.

Example:

1700

inertiaIzz
number<double>

Principal moment of inertia about the body's tertiary principal axis (kg·m²). Optional.

Example:

2100

launchMass
number<double>

Total mass at launch in kg

Required range: 0.001 < x < 100000
Example:

500

name
string

Name of the spacecraft

Required string length: 1 - 100
Pattern: ^[a-zA-Z0-9\s_-]+$
Example:

"Sentinel-1A"

noradId
integer<int32>

NORAD catalog number

Required range: 1 <= x <= 99999
Example:

43013

panels
(object | null)[] | null

Advanced-geometry solar panels attached to this spacecraft. 0..8 entries; per-panel validation cascades via @Valid. Omit to leave the persisted panels unchanged.

Maximum array length: 8

One independent solar / radiator panel (DKR-1 §2).

prismAxis
enum<string>

Extrusion axis of the regular prism (DKR-1 §3.4). Defaults to Z on create; omit on update to leave unchanged.

Available options:
X,
Y,
Z
Example:

"Z"

prismDiameter
number<double>

Operator-supplied cross-section diameter D in meters (DKR-1 §3.4).

Required range: 0.001 < x < 1000
Example:

0.866025

prismDiameterMeasure
enum<string>

Whether prismDiameter is the inscribed or circumscribed circle diameter (DKR-1 §3.4).

Available options:
INSCRIBED,
CIRCUMSCRIBED
Example:

"INSCRIBED"

prismHeightM
number<double>

Regular-prism height L along the extrusion axis in meters (DKR-1 §3.4).

Required range: 0.001 < x < 1000
Example:

1

prismSides
integer<int32>

Number of regular-polygon sides N (DKR-1 §3.4). Range [3, 12].

Required range: 3 <= x <= 12
Example:

6

reflectivityCoefficient
number<double>

Reflectivity coefficient (1=pure absorber, 2=pure specular reflector)

Required range: 1 < x < 2
Example:

1.5

specularReflection
number<double>

Optical specular-reflection coefficient ρs (dimensionless). Range [0.0, 1.0). Energy conservation: absorption + specularReflection <= 1.0.

Required range: 0 < x < 1
Example:

0.3

srpArea
number<double>

Operator-typed solar-radiation-pressure cross-sectional area in m² (DKR-1 §3.6a).

Required range: 0 < x < 10000
Example:

5

updatingBoxDimensions
boolean
updatingInertiaTensor
boolean

Response

Spacecraft updated successfully

Response containing spacecraft details

absorption
number<double>

Optical absorption coefficient α (dimensionless). Range (0.0, 1.0].

Example:

0.4

bodyShape
enum<string>

Body geometry primitive (BOX or REGULAR_PRISM).

Available options:
BOX,
REGULAR_PRISM
Example:

"BOX"

boxX
number<double>

Spacecraft box/bus X dimension (width) in meters

Example:

1.5

boxY
number<double>

Spacecraft box/bus Y dimension (height) in meters

Example:

1

boxZ
number<double>

Spacecraft box/bus Z dimension (length) in meters

Example:

2

color
string

Spacecraft color in hex format

Example:

"#FF5733"

cosparId
string

COSPAR international designator

Example:

"2024-001A"

createdAt
string<date-time>

Timestamp when the spacecraft was created

dragArea
number<double>

Operator-typed drag cross-sectional area in m² (null for pre-migration spacecraft)

Example:

5

dragCoefficient
number<double>

Drag coefficient

Example:

2.2

dryMass
number<double>

Mass without propellant in kg

Example:

450

environment
string

Environment scope of this spacecraft (OPERATIONS or MISSION_ANALYSIS).

Example:

"MISSION_ANALYSIS"

id
string

Unique identifier of the spacecraft

Example:

"550e8400-e29b-41d4-a716-446655440000"

inertiaIxx
number<double>

Principal moment of inertia about the body's primary principal axis (kg·m²). Optional; null when inertia is not configured.

Example:

1500

inertiaIyy
number<double>

Principal moment of inertia about the body's secondary principal axis (kg·m²). Optional; null when inertia is not configured.

Example:

1700

inertiaIzz
number<double>

Principal moment of inertia about the body's tertiary principal axis (kg·m²). Optional; null when inertia is not configured.

Example:

2100

launchMass
number<double>

Total mass at launch in kg

Example:

500

lifecycleStatus
string

Lifecycle status of the spacecraft

Example:

"Active"

name
string

Name of the spacecraft

Example:

"Sentinel-1A"

noradId
integer<int32>

NORAD catalog number

Example:

43013

organizationId
string

Organization ID that owns this spacecraft

Example:

"VALAR"

panels
object[]

Per-panel rows (0..8). Each entry carries dimensions, attachment face, and orientation angles.

prismAxis
enum<string>

Extrusion axis of the regular prism (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Available options:
X,
Y,
Z
Example:

"Z"

prismComplementaryDiameter
number<double>

Cross-section diameter in the OTHER datum (the complement of prismDiameterMeasure), computed from edge + sides (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Example:

1

prismDiameter
number<double>

Cross-section diameter in the operator's chosen datum (prismDiameterMeasure), computed from edge + sides (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Example:

0.866025

prismDiameterMeasure
enum<string>

Which diameter datum the operator used to size the cross-section (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Available options:
INSCRIBED,
CIRCUMSCRIBED
Example:

"INSCRIBED"

prismEdgeM
number<double>

Canonical regular-polygon edge length a in meters (DKR-1 §6) — the persisted source-of-truth cross-section dimension. Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Example:

0.5

prismHeightM
number<double>

Regular-prism height L along the extrusion axis in meters. Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Example:

1

prismSides
integer<int32>

Number of regular-polygon sides N (DKR-1 §3.4). Populated only when bodyShape=REGULAR_PRISM; null otherwise.

Example:

6

reflectivityCoefficient
number<double>

Reflectivity coefficient

Example:

1

specularReflection
number<double>

Optical specular-reflection coefficient ρs (dimensionless). Range [0.0, 1.0).

Example:

0.3

srpArea
number<double>

Operator-typed SRP cross-sectional area in m² (null for pre-migration spacecraft)

Example:

5

updatedAt
string<date-time>

Timestamp when the spacecraft was last updated