You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update and clean up flight_planning interface (#12)
* Update and clean up flight_planning interface
* Add versions to included YAML files, fix enum value example
* Fix version consistency
* Split result into planning activity result and flight plan status
* Fix enum values
* Remove "nominally" from area to clarify off-nominal behavior
* Address comments
* Fix required field name
* Clarify `area`, harmonize user/operator
* ReadyToFly -> OkToFly
* Add ExecutionStyle
title: Definitions used in flight planning interface specific to strategic conflict detection, but not using data structures aligned with ones defined in ASTM F3548-21.
2
+
title: Definitions used in flight planning interface specific to ASTM F3548-21.
4
3
components:
5
4
schemas:
6
-
Foo:
7
-
type: object
8
5
ASTMF354821OpIntentInformation:
9
6
description: >-
10
7
Information provided about a flight plan that is necessary for ASTM F3548-21.
This interface is implemented by a USS wishing to participate in automated tests involving attempts to plan flights.
7
7
8
-
The client (usually uss_qualifier) pretends to be a user interacting with the USS's flight planning user interface
9
-
attempting to plan, update, and close flight plans.
8
+
A client (usually uss_qualifier) pretends to be a user interacting with the USS's flight planning user interface
9
+
attempting to plan, update, and close flight plans. The client provides the information a USS user may be expected
10
+
to provide to the USS when using the USS, and the USS responds with only the information the USS provides to its
11
+
normal users when they perform an equivalent flight planning action. The USS should implement execution of these
12
+
flight planning actions using as many of the code paths involved in serving a normal user as practical.
10
13
11
-
The client may also (with a separate authorization scope) act as the test director to determine the status of the
12
-
USS's system under test, and request that the test area be cleared of any dangling flight plans.
14
+
A client may also (with a separate authorization scope) act as the test director to determine the status of the
15
+
USS's system under test, and request that the test area be cleared of any dangling flight plans. The USS may
16
+
implement these actions using non-standard code paths or those not available to normal users.
13
17
14
18
Note: Unless otherwise specified, fields specified in a message but not declared in the API or otherwise known to
15
19
the server or client (as applicable) must be ignored.
@@ -32,6 +36,17 @@ components:
32
36
Authorization from, or on behalf of, an authorization authority, augmenting standard strategic conflict detection or other similar authorization for the purpose of automated testing.
33
37
34
38
schemas:
39
+
FlightPlanID:
40
+
description: >-
41
+
String identifying a user flight plan. Format matches a version-4 UUID according to RFC 4122.
Basic information about a flight plan that an operator and/or UAS can be expected to provide in most flight
85
-
planning scenarios.
99
+
Basic information about a flight plan that a user and/or UAS can be expected to provide in most flight planning
100
+
scenarios.
86
101
type: object
87
102
required:
88
103
- usage_state
@@ -104,10 +119,11 @@ components:
104
119
description: >-
105
120
State of the user's UAS associated with this flight plan.
106
121
107
-
- `Nominal`: The user or UAS reports or implies that it is performing nominally.
122
+
- `Nominal`: The user or UAS reports or implies that it is performing nominally, or has not indicated
123
+
`OffNominal` or `Contingent`.
108
124
109
125
- `OffNominal`: The user or UAS reports or implies that it is temporarily not performing nominally, but
110
-
expects to be able to recover to normal operation.
126
+
may expect to be able to recover to normal operation.
111
127
112
128
- `Contingent`: The user or UAS reports or implies that it is not performing nominally and may be unable
113
129
to recover to normal operation.
@@ -116,60 +132,109 @@ components:
116
132
- Nominal
117
133
- OffNominal
118
134
- Contingent
119
-
nominal_area:
135
+
area:
120
136
description: >-
121
-
User nominally intends or intended to fly in this entire area. If authorizations are required and cannot be
122
-
granted to cover this entire area, the plan should be rejected.
137
+
The complete area in which the user intends to fly, or may fly, as known by the user. The user intends to fly, or may fly, anywhere in this entire area.
The style of execution of a specified flight planning action that the operator would like the USS to perform.
147
+
148
+
- `Hypothetical`: The user does not want the USS to actually perform any action regarding the actual flight plan. Instead, the user would like to know the likely outcome if the action were hypothetically attempted. The response to this request will not refer to an actual flight plan, or an actual state change in an existing flight plan, but rather a hypothetical flight plan or a hypothetical change to an existing flight plan.
149
+
150
+
- `IfAllowed`: The user would like to perform the requested action if it is allowed. If the requested action is allowed, the USS should actually perform the action (e.g., actually create a new ASTM F3548-21 operational intent). If the requested action is not allowed, the USS should indicate that the action is Rejected and not perform the action. The response to this request will refer to an actual flight plan when appropriate, and never refer to a hypothetical flight plan or status.
151
+
152
+
- `InReality`: The user is communicating an actual state of reality. The USS should consider the user to be actually performing (or attempting to perform) this action, regardless of whether or not the action is allowed under relevant UTM rules.
153
+
enum: [Hypothetical, IfAllowed, InReality]
154
+
example: IfAllowed
155
+
136
156
UpsertFlightPlanRequest:
157
+
description: >-
158
+
Client request to emulate a user performing a flight planning action.
137
159
type: object
138
160
required:
139
-
- intended_flight
161
+
- flight_plan
162
+
- execution_style
140
163
- request_id
141
164
properties:
142
-
intended_flight:
143
-
$ref: '#/components/schemas/FlightPlan'
165
+
flight_plan:
166
+
description: Complete new or updated information about the flight describing the flight planning action to be taken.
167
+
anyOf:
168
+
- $ref: '#/components/schemas/FlightPlan'
169
+
execution_style:
170
+
description: Style of execution for the requested flight planning action.
171
+
anyOf:
172
+
- $ref: '#/components/schemas/ExecutionStyle'
144
173
request_id:
174
+
type: string
145
175
description: >-
146
176
ID uniquely identifying the upsertion request. If additional requests are received with the same
147
177
request_id, the response from the first request should be returned, or an error indicated.
- `Completed`: The user's flight plan has been updated according to the situation specified by the user.
185
+
186
+
- `Rejected`: The updates the user requested to their flight plan are not allowed according to the rules under which the flight plan is being managed. The reasons for rejection may include a disallowed conflict with another flight during preflight.
187
+
188
+
- `Failed`: The USS was not able to successfully authorize or update the flight plan due to a problem with the USS or a downstream system.
189
+
190
+
- `NotSupported`: The USS's implementation does not support the attempted interaction. For instance, if the request specified a high-priority flight and the USS does not support management of high-priority flights.
191
+
enum: [Completed, Rejected, Failed, NotSupported]
192
+
example: Completed
193
+
194
+
FlightPlanStatus:
195
+
type: string
196
+
description: >-
197
+
The status of the user's flight plan.
198
+
199
+
- `NotPlanned`: The USS has not created an authorized flight plan for the user.
200
+
201
+
- `Planned`: The USS has created an authorized flight plan for the user, but the user may not yet start flying (even if within the time bounds of the flight plan).
202
+
203
+
- `OkToFly`: The flight plan is in a state such that it is ok for the user to nominally fly within the bounds (including time) of the flight plan.
204
+
205
+
- `OffNominal`: The flight plan now reflects the user's actions, but the flight plan is not in a nominal state (e.g., the USS has placed the ASTM F3548-21 operational intent into one of the Nonconforming or Contingent states).
206
+
207
+
- `Closed`: The flight plan was closed successfully by the USS and is now out of the UTM system.
If any option other than `Planned` or `ReadyToFly` is specified, the `notes` field should be populated with the reason for the unsuccessful outcome.
160
-
161
-
- `Planned`: The data submitted in the flight plan intent was valid and the flight plan was successfully processed by the USS and is now authorized, but the user may not yet start flying (even if within the time bounds of the flight plan).
162
-
163
-
- `ReadyToFly`: The flight plan is ready for the operator to begin flying within the bounds (including time) of the flight plan.
164
-
165
-
- `Rejected`: The data provided in the flight plan was invalid and/or could not be used to successfully authorize the flight. The reason for rejection may include a disallowed conflict with another flight.
166
-
167
-
- `Failed`: The USS was not able to successfully authorize the flight plan due to a problem with the USS or a downstream system
168
-
169
-
- `NotSupported`: The USS does not support the attempted interaction. For instance, if the request specified a high-priority flight and the USS does not support management of high-priority flights.
0 commit comments