Skip to content

[flight_planning] Add RID-relevant information to flight planning interface #33

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 29 additions & 3 deletions flight_planning/v1/flight_planning.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
openapi: 3.0.2
info:
title: Flight Planning Automated Testing Interface
version: 0.6.0
version: 0.7.0
description: >-
This interface is provided by a USS wishing to participate in automated tests involving attempts to plan flights.

Expand Down Expand Up @@ -84,9 +84,9 @@ components:
example: Flight Planning Automated Testing Interface
api_version:
description: |-
Indication of the API version implemented at this URL. Must be "v0.6.0" when implementing this version of the API.
Indication of the API version implemented at this URL. Must be "v0.7.0" when implementing this version of the API.
type: string
example: v0.6.0
example: v0.7.0

FlightPlan:
description: >-
Expand All @@ -97,6 +97,10 @@ components:
properties:
basic_information:
$ref: '#/components/schemas/BasicFlightPlanInformation'
uas:
$ref: './uas.yaml#/components/schemas/UASInformation'
operator:
$ref: './operator.yaml#/components/schemas/OperatorInformation'
telemetry:
description: |-
Telemetry for the flight (see FlightTelemetry definition).
Expand Down Expand Up @@ -163,6 +167,28 @@ components:
items:
$ref: './geotemporal.yaml#/components/schemas/Volume4D'
default: []
description:
description: Free-text field that enables the operator to describe the purpose of a flight, if so desired.
type: string
example: Medical supplies delivery operated by Example Drone Company
default: ''
utm_id:
description: A UTM-provided universally unique ID traceable to a
non-obfuscated ID that acts as a "session id" to protect exposure of
operationally sensitive information.
type: string
example: ae1fa066-6d68-4018-8274-af867966978e
default: ''
specific_session_id:
$ref: '#/components/schemas/SpecificSessionID'

SpecificSessionID:
description: |-
A unique ID intended to identify a specific flight (session) while providing a
greater level of privacy to the operator. Defined, for instance, in ASTM F3411.
type: string
example: 02-a1b2c3d4e5f60708
default: ''

ExecutionStyle:
type: string
Expand Down
49 changes: 49 additions & 0 deletions flight_planning/v1/operator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
info:
title: Definitions used in flight planning interface specific to the operator.
components:
schemas:
OperatorInformation:
description: >-
Information about the operator that may be provided in flight planning scenarios.
type: object
properties:
registration_numbers:
description: Registration numbers for the remote pilot or operator.
type: array
items:
$ref: '#/components/schemas/OperatorRegistrationNumber'
location:
anyOf:
- $ref: './geotemporal.yaml#/components/schemas/LatLngPoint'
description: Location of operator.
altitude:
anyOf:
- $ref: './geotemporal.yaml#/components/schemas/Altitude'
description: Altitude of operator.

OperatorRegistrationNumber:
description: >-
Number provided by CAA or authorized representative for registering, licensing and/or identifying a remote
pilot or operator.
type: object
required:
- identifier
properties:
authority:
description: |-
Authority providing this registration number. If authority represents a country, the ICAO nationality
mark is recommended.
type: string
example: N
default: ''
type:
description: |-
Type of license, registration, identifier, etc.
type: string
example: Part107License
default: ''
identifier:
description: |-
Authority-assigned number or identifier.
type: string
example: N.123456
109 changes: 109 additions & 0 deletions flight_planning/v1/uas.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
info:
title: Definitions used in flight planning interface specific to the UAS.
components:
schemas:
UASInformation:
description: >-
Information about a UAS that may be provided in flight planning scenarios.
type: object
properties:
aircraft_type:
anyOf:
- $ref: '#/components/schemas/UAType'
description: Aircraft type of the injected test flight.
serial_number:
description: This is generally expressed in the CTA-2063-A Serial Number format.
type: string
example: INTCJ123-4567-890
default: ''
registration_numbers:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any reason why this is enabling multiple registration IDs? While the original UASID schema only enables one.

description: >-
For each relevant authority with which this UAS is registered, the number/identifier assigned
to this UAS.
type: array
items:
$ref: '#/components/schemas/UASRegistrationNumber'
default: []
eu_classification:
description: EU classification of aircraft.
anyOf:
- $ref: '#/components/schemas/UAClassificationEU'

UASRegistrationNumber:
description: >-
Number provided by CAA or authorized representative for registering and/or identifying UAS.
type: object
required:
- identifier
properties:
authority:
description: |-
Authority providing this registration number. If authority represents a country, the ICAO nationality
mark is recommended.
type: string
example: N
default: ''
type:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be an addition compared to the original UASID schema. Is this required?

description: |-
Type of license, registration, identifier, etc.
type: string
example: Registration
default: ''
identifier:
description: |-
Authority-assigned number or identifier.
type: string
example: N.123456

UAType:
description: |-
The UA Type can help infer performance, speed, and duration of flights, for example, a
"fixed wing" can generally fly in a forward direction only (as compared to a multi-rotor).

`HybridLift` is a fixed wing aircraft that can take off vertically. `Helicopter` includes multirotor.

`VTOL` is equivalent to HybridLift.
enum:
- NotDeclared
- Aeroplane
- Helicopter
- Gyroplane
- VTOL
- HybridLift
- Ornithopter
- Glider
- Kite
- FreeBalloon
- CaptiveBalloon
- Airship
- FreeFallOrParachute
- Rocket
- TetheredPoweredAircraft
- GroundObstacle
- Other
type: string
default: NotDeclared

UAClassificationEU:
type: object
properties:
category:
type: string
enum:
- EUCategoryUndefined
- Open
- Specific
- Certified
default: EUCategoryUndefined
class:
type: string
enum:
- EUClassUndefined
- Class0
- Class1
- Class2
- Class3
- Class4
- Class5
- Class6
default: EUClassUndefined
3 changes: 3 additions & 0 deletions flight_planning/v1/user_notification.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ components:
anyOf:
- $ref: './geotemporal.yaml#/components/schemas/Time'
description: Time at which the virtual user observed the notification.
message:
description: Message presented to the user, description of notification, or other means of helping identify the nature of the notification, for the purpose of increased readability of test reports.
type: string
Comment on lines +15 to +17
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this change intended? It is not included in the PR description.

Although checking injection.yaml it is probably intended.

conflicts:
description: >-
Conflict status as indicated in the notification.
Expand Down