Skip to content

Commit 6eec48d

Browse files
Add and update descriptions in DSS API
See OAI/OpenAPI-Specification#556 (comment) for basis of allOf workaround
1 parent de86018 commit 6eec48d

File tree

1 file changed

+123
-45
lines changed

1 file changed

+123
-45
lines changed

utm_dss.yaml

Lines changed: 123 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,11 @@ components:
8484
example: '03e5572a-f733-49af-bc14-8a18bd53ee39'
8585

8686
EntityUUID:
87-
$ref: '#/components/schemas/UUIDv4'
87+
description: |-
88+
Universally-unique identifier for an Entity communicated through
89+
the DSS. Formatted as UUIDv4.
90+
allOf:
91+
- $ref: '#/components/schemas/UUIDv4'
8892

8993
EntityOVN:
9094
title: EntityOVN
@@ -109,13 +113,17 @@ components:
109113
for that EntityUUID, that subscription update should be ignored.
110114
type: integer
111115
token:
112-
$ref: '#/components/schemas/UUIDv4'
116+
description: |-
117+
Universally-unique identifier associated with a specific set of
118+
data.
119+
allOf:
120+
- $ref: '#/components/schemas/UUIDv4'
113121

114122
OVNEntry:
115123
description: Mapping between an EntityUUID and an EntityOVN.
116124
required:
117-
- id
118-
- signature
125+
- entity_id
126+
- entity_ovn
119127
type: object
120128
properties:
121129
entity_id:
@@ -130,7 +138,11 @@ components:
130138
$ref: '#/components/schemas/OVNEntry'
131139

132140
SubscriptionUUID:
133-
$ref: '#/components/schemas/UUIDv4'
141+
description: |-
142+
Universally-unique identifier for a Subscription communicated through
143+
the DSS. Formatted as UUIDv4.
144+
allOf:
145+
- $ref: '#/components/schemas/UUIDv4'
134146

135147
Key:
136148
description: |
@@ -349,6 +361,10 @@ components:
349361
properties:
350362
$ref: '#/components/schemas/RadiusWithUnits'
351363

364+
#
365+
# End of GeoJSON definitions
366+
#
367+
352368
Volume3D:
353369
description: |-
354370
A three-dimensional geographic volume consisting of a vertically-extruded polygon.
@@ -372,9 +388,13 @@ components:
372388
type: 'Point'
373389
coordinates: [-121.0123, 156.789]
374390
altitude_lower:
375-
$ref: '#/components/schemas/AltitudeWithUnits'
391+
description: Minimum bounding altitude of this volume.
392+
allOf:
393+
- $ref: '#/components/schemas/AltitudeWithUnits'
376394
altitude_upper:
377-
$ref: '#/components/schemas/AltitudeWithUnits'
395+
description: Maximum bounding altitude of this volume.
396+
allOf:
397+
- $ref: '#/components/schemas/AltitudeWithUnits'
378398

379399
Volume4D:
380400
description: Contiguous block of geographic spacetime.
@@ -385,9 +405,13 @@ components:
385405
volume:
386406
$ref: '#/components/schemas/Volume3D'
387407
time_start:
388-
$ref: '#/components/schemas/TimeWithUnits'
408+
description: Beginning time of this volume.
409+
allOf:
410+
- $ref: '#/components/schemas/TimeWithUnits'
389411
time_end:
390-
$ref: '#/components/schemas/TimeWithUnits'
412+
description: End time of this volume.
413+
allOf:
414+
- $ref: '#/components/schemas/TimeWithUnits'
391415

392416

393417
ErrorResponse:
@@ -475,12 +499,21 @@ components:
475499
notification_index:
476500
$ref: '#/components/schemas/SubscriptionNotificationIndex'
477501
time_start:
478-
$ref: '#/components/schemas/TimeWithUnits'
502+
description: |-
503+
If set, this subscription will not receive notifications before this time.
504+
allOf:
505+
- $ref: '#/components/schemas/TimeWithUnits'
479506
time_end:
480-
$ref: '#/components/schemas/TimeWithUnits'
507+
description: |-
508+
If set, this subscription will not receive notifications after this time.
509+
allOf:
510+
- $ref: '#/components/schemas/TimeWithUnits'
481511
callbacks:
482512
$ref: '#/components/schemas/SubscriptionCallbacks'
483513
created_by_operation:
514+
description: |-
515+
True if this Subscription was implicitly created by the DSS via the creation of an
516+
Operation, and should therefore be deleted by the DSS when that Operation is deleted.
484517
type: boolean
485518
dependent_operations:
486519
$ref: '#/components/schemas/OperationDependencyList'
@@ -563,24 +596,32 @@ components:
563596

564597
QueryOperationDetailsURL:
565598
description: |-
566-
The base URL (protocol://hostname/path) where USS Operation data is retrieved. This URL may not have a trailing '/' character.
567-
The path `/v1/operations/{id}` will be appended to this string to form the complete URL.
568-
(See `GET /v1/operations/`, `GET /v1/operations/{id}`, and `GET /v1/operations/{id}/telemetry` for more information.)
599+
The base URL of a USS implementation of (at least) the GET Operation details portion of the USS-USS API.
600+
Per the USS-USS API, the full URL to retrieve the details of an Operation with a particular {id} can
601+
be constructed by appending `/v1/operations/{id}` to this base URL. Accordingly, this URL may
602+
not have a trailing '/' character. At times when telemetry is available for this operation, it may
603+
be retrieved at `{QueryOperationBaseURL}/v1/operations/{id}/telemetry`. See
604+
`GET /v1/operations/{id}` and `GET /v1/operations/{id}/telemetry` in the USS-USS API for more information.
569605
type: string
570606
example: 'https://uss.com/utm'
571607

572608
NotifyOperationDetailsURL:
573609
description: |-
574-
The base URL (protocol://hostname/path) where USS Operation data is received. This URL may not have a trailing '/' character.
575-
The path `/v1/operations/{id}` will be appended to this string to form the complete URL.
576-
(See `PUT /v1/operations/{id}` and `DELETE /v1/operations/{id}` for more information.)
610+
The base URL of a USS implementation of (at least) the PUT Operation details portion of the USS-USS API.
611+
Per the USS-USS API, the full URL to notify the implementing USS of updated details for an Operation
612+
with a particular {id} can be constructed by appending `/v1/operations/{id}` to this base URL.
613+
Accordingly, this URL may not have a trailing '/' character. See `PUT /v1/operations/{id}` and
614+
`DELETE /v1/operations/{id}` in the USS-USS API for more information.
577615
type: string
578616
example: 'https://uss.com/utm'
579617

580618
OperationCallbacks:
581619
description: |-
582-
Endpoints that should be called when an applicable event occurs.
583-
All fields are required.
620+
Endpoints that should be called when an applicable event occurs to ensure the
621+
Operator remains aware of relevant airspace information.
622+
This field should be populated there is no existing Subscription provided in
623+
`subscription_id` is not provided. If provided, this
624+
information will be used to create an implicit Subscription associated with this Operation.
584625
required:
585626
- query_details_url
586627
- notify_feedback_url
@@ -595,13 +636,13 @@ components:
595636
description: |-
596637
State of an Operation.
597638

598-
'Accepted': This Operation was fully deconflicted from other Entities at the time it changed to this state, but no aircraft associated with it are active yet.
639+
'Accepted': This Operation was fully deconflicted from other Entities at the time it changed to this state, but no aircraft associated with it are active yet. The create or update request for this Operation must include a Key containing all OVNs for all relevant Entities.
599640

600-
'Activated': One or more aircraft associated with this Operation are, or will imminently be, in flight.
641+
'Activated': One or more aircraft associated with this Operation are, or will imminently be, in flight. The create or update request for this Operation must include a Key containing all OVNs for all relevant Entities.
601642

602-
'NonConforming': This Operation is outside of the planned volume. A new volume MUST be submitted to the DSS. In this state, the {query-operation-details}/{id}/telemetry' endpoint MUST respond (if possible) to queries from USS peers.
643+
'NonConforming': This Operation is outside of the planned volume. The new or updated volumes MUST contain the actual position of the aircraft. In this state, the `/v1/operation_details/{id}/telemetry' USS-USS endpoint MUST respond (if possible) to queries from USS peers. The create or update request for this Operation may omit a Key in this case because the Operation is being adjusted as flown and cannot necessarily deconflict.
603644

604-
'Contingent': (Also known as ROGUE). This Operation has been NON-CONFORMING for a certain period of time. This state must transition to ENDED. A new volume MUST be submitted to the DSS. In this state, the {query-operation-details}/{id}/telemetry' endpoint MUST respond (if possible) to queries from USS peers.
645+
'Contingent': This Operation is executing a contingency action, either because is has been NonConforming for a certain period of time, or because of operator initiation. This state must transition to Ended. The new or updated volumes MUST contain the actual position of the aircraft. In this state, the `/v1/operation_details/{id}/telemetry' USS-USS endpoint MUST respond (if possible) to queries from USS peers. The create or update request for this Operation may omit a Key in this case because the Operation is being adjusted as flown and cannot necessarily deconflict.
605646

606647
'Ended': This Operation has ended (due to either an Operator-induced change or flight completion).
607648
type: string
@@ -614,7 +655,7 @@ components:
614655

615656
OperationReference:
616657
description: |-
617-
The high-level information of a planned/active Operation with the URL
658+
The high-level information of a planned or active Operation with the URL
618659
of a USS to query for details. Note: 'OVN' is returned ONLY to the USS that
619660
created the Operation but NEVER to other USS instances.
620661
required:
@@ -627,21 +668,34 @@ components:
627668
id:
628669
$ref: '#/components/schemas/EntityUUID'
629670
ovn:
630-
$ref: '#/components/schemas/EntityOVN'
671+
description: |-
672+
Opaque version number of this Operation. Populated only when the OperationReference
673+
is owned by the USS retrieving it. Not populated when the OperationReference is not
674+
owned by the USS retrieving it (instead, the USS must obtain the OVN from the details
675+
retrieved from the owning USS).
676+
allOf:
677+
- $ref: '#/components/schemas/EntityOVN'
631678
owner:
632679
type: string
633-
example: '(uss_owner)'
680+
example: 'uss1'
634681
description: |-
635682
Created by the DSS and based on creating client’s ID (via access
636683
token). Used for restricting mutation and deletion operations to owner.
637684
time_start:
638-
$ref: '#/components/schemas/TimeWithUnits'
685+
description: Beginning time of Operation.
686+
allOf:
687+
- $ref: '#/components/schemas/TimeWithUnits'
639688
time_end:
640-
$ref: '#/components/schemas/TimeWithUnits'
689+
description: End time of Operation.
690+
allOf:
691+
- $ref: '#/components/schemas/TimeWithUnits'
641692
callbacks:
642693
$ref: '#/components/schemas/OperationCallbacks'
643694
subscription_id:
644-
$ref: '#/components/schemas/EntityUUID'
695+
description: |-
696+
The ID of the Subscription that is ensuring the Operation owner receives relevant airspace updates while that Operation is
697+
allOf:
698+
- $ref: '#/components/schemas/SubscriptionUUID'
645699

646700
PutOperationReferenceParameters:
647701
description: |-
@@ -667,9 +721,21 @@ components:
667721
callbacks:
668722
$ref: '#/components/schemas/OperationCallbacks'
669723
subscription_id:
670-
$ref: '#/components/schemas/EntityUUID'
724+
description: |-
725+
The ID of an existing Subscription that the USS will use to keep the operator informed about
726+
updates to relevant airspace information. If this field is not provided, then the
727+
`subscription_callbacks` field must be provided in order to provide notification capability
728+
for the Operation. The Subscription specified by this ID must cover at least the area over
729+
which this Operation is conducted.
730+
allOf:
731+
- $ref: '#/components/schemas/EntityUUID'
671732
subscription_callbacks:
672-
$ref: '#/components/schemas/SubscriptionCallbacks'
733+
description: |-
734+
If an existing Subscription is not specified in `subscription_id`, then the necessary
735+
information to create an implicit Subscription must be provided in this field. Both
736+
URLs must be specified.
737+
allOf:
738+
- $ref: '#/components/schemas/SubscriptionCallbacks'
673739

674740
GetOperationReferenceResponse:
675741
description: |-
@@ -715,20 +781,23 @@ components:
715781

716782
QueryConstraintDetailsURL:
717783
description: |-
718-
The base URL (protocol://hostname/path) where USS Constraint data is retrieved. This URL may not have a trailing '/' character.
719-
The path `/v1/constraints/{id}` will be appended to this string to form the complete URL.
720-
(See `GET /v1/constraints/` and `GET /v1/constraints/{id}` for more information.)
784+
The base URL of a USS implementation of (at least) the GET Constraint details portion of the USS-USS API.
785+
Per the USS-USS API, the full URL to retrieve the details of a Constraint with a particular {id} can
786+
be constructed by appending `/v1/constraints/{id}` to this base URL. Accordingly, this URL may
787+
not have a trailing '/' character. See `GET /v1/constraints/{id}` in the USS-USS API for more information.
721788
type: string
722789
example: 'https://uss.com/utm'
723790

724791
NotifyConstraintDetailsURL:
725792
description: |-
726-
The base URL (protocol://hostname/path) where USS Constraint data is received. This URL may not have a trailing '/' character.
727-
The path `/v1/constraints/{id}` will be appended to this string to form the complete URL.
728-
(See `PUT /v1/constraints/{id}` and `DELETE /v1/constraints/{id}` for more information.)
793+
The base URL of a USS implementation of (at least) the PUT Constraint details portion of the USS-USS API.
794+
Per the USS-USS API, the full URL to notify the implementing USS of updated details for a Constraint
795+
with a particular {id} can be constructed by appending `/v1/constraints/{id}` to this base URL.
796+
Accordingly, this URL may not have a trailing '/' character. See `PUT /v1/constraints/{id}` and
797+
`DELETE /v1/constraints/{id}` in the USS-USS API for more information.
729798
type: string
730799
example: 'https://uss.com/utm'
731-
800+
732801
ConstraintCallbacks:
733802
description: |-
734803
Endpoints that should be called when an applicable event occurs.
@@ -757,12 +826,18 @@ components:
757826
id:
758827
$ref: '#/components/schemas/EntityUUID'
759828
ovn:
760-
$ref: '#/components/schemas/EntityOVN'
829+
description: |-
830+
Opaque version number of this Constraint. Populated only when the ConstraintReference
831+
is owned by the USS retrieving it. Not populated when the ConstraintReference is not
832+
owned by the USS retrieving it (instead, the USS must obtain the OVN from the details
833+
retrieved from the owning USS).
834+
allOf:
835+
- $ref: '#/components/schemas/EntityOVN'
761836
owner:
762837
description: Created by the DSS and based on creating client’s ID (via access
763838
token). Used for restricting mutation and deletion transactions to the entity owner.
764839
type: string
765-
example: '(uss_owner)'
840+
example: 'uss1'
766841
time_start:
767842
$ref: '#/components/schemas/TimeWithUnits'
768843
time_end:
@@ -835,8 +910,11 @@ components:
835910

836911
ReportsBaseURL:
837912
description: |-
838-
The URL at which feedback may be submitted. This URL may not have a trailing '/' character.
839-
See `POST /v1/reports/{id}` for specification of this endpoint.
913+
The base URL of a USS implementation of (at least) the PUT reports portion of the USS-USS API.
914+
Per the USS-USS API, the full URL to notify the implementing USS of an error report with a
915+
particular {id} can be constructed by appending `/v1/reports/{id}` to this base URL.
916+
Accordingly, this URL may not have a trailing '/' character. See `POST /v1/reports/{id}` in
917+
the USS-USS API for more information.
840918
type: string
841919
example: 'https://uss.com/utm'
842920

@@ -997,7 +1075,7 @@ paths:
9971075
description: The requested area was too large.
9981076

9991077
/v1/operations/{id}:
1000-
summary: CRUD endpoint for a specified Operation in the DSS.
1078+
summary: CRUD endpoint for a specified Operation (reference) in the DSS.
10011079
parameters:
10021080
- name: id
10031081
description: EntityUUID of the Operation.
@@ -1059,7 +1137,7 @@ paths:
10591137
security:
10601138
- Authority:
10611139
- utm.write.operations
1062-
summary: Create/Update the specified Operation.
1140+
summary: Create/Update the specified Operation (reference) in the DSS.
10631141
responses:
10641142
"200":
10651143
content:
@@ -1111,7 +1189,7 @@ paths:
11111189
security:
11121190
- Authority:
11131191
- utm.write.operations
1114-
summary: Remove the specified Operation from the DSS.
1192+
summary: Remove the specified Operation (reference) from the DSS.
11151193
responses:
11161194
"200":
11171195
content:

0 commit comments

Comments
 (0)