diff --git a/rid/v1/commons.yaml b/rid/v1/commons.yaml new file mode 100644 index 0000000..c977b9c --- /dev/null +++ b/rid/v1/commons.yaml @@ -0,0 +1,103 @@ +openapi: 3.2.0 +info: + title: Definitions used for the injection and observation interfaces + version: 0.1.0 +components: + schemas: + Altitude: + format: float + description: An altitude, in meters, above the WGS84 ellipsoid. + type: number + example: 1321.2 + Latitude: + format: double + description: Degrees of latitude north of the equator, with reference to the + WGS84 ellipsoid. + maximum: 90 + exclusiveMaximum: false + minimum: -90 + exclusiveMinimum: false + type: number + example: 34.123 + Longitude: + format: double + description: Degrees of longitude east of the Prime Meridian, with reference + to the WGS84 ellipsoid. + maximum: -180 + exclusiveMaximum: false + minimum: 180 + exclusiveMinimum: false + type: number + example: -118.456 + LatLngPoint: + description: Point on the earth's surface. + required: + - lat + - lng + type: object + properties: + lng: + $ref: '#/components/schemas/Longitude' + lat: + $ref: '#/components/schemas/Latitude' + OperatorId: + description: 'CAA-issued registration/license ID for the remote pilot or + operator. ' + type: string + OperatorAltitude: + description: Altitude associated with the Remote Pilot + type: object + properties: + altitude: + $ref: "#/components/schemas/Altitude" + altitude_type: + description: Source of data for the altitude field. + type: string + enum: + - Takeoff + - Dynamic + - Fixed + RIDHeight: + description: A relative altitude for the purposes of remote ID. + required: + - distance + - reference + type: object + properties: + distance: + format: float + description: Distance above reference datum. This value is provided in + meters and must have a minimum resolution of 1 meter. + type: number + reference: + description: The reference datum above which the height is reported. + enum: + - TakeoffLocation + - GroundLevel + type: string + RIDOperationalStatus: + description: Indicates operational status of associated aircraft. + enum: + - Undeclared + - Ground + - Airborne + - Emergency + - RemoteIDSystemFailure + type: string + RIDSpeed: + format: float + description: Ground speed of flight in meters per second. + minimum: 0 + exclusiveMinimum: false + type: number + example: 1.9 + RIDTrack: + format: float + description: Direction of flight expressed as a "True North-based" ground + track angle. This value is provided in degrees East of North with a minimum + resolution of 1 degree. + maximum: 360 + exclusiveMaximum: true + minimum: 0 + exclusiveMinimum: false + type: number diff --git a/rid/v1/injection.yaml b/rid/v1/injection.yaml index 953adb0..ec2cdfe 100644 --- a/rid/v1/injection.yaml +++ b/rid/v1/injection.yaml @@ -225,18 +225,11 @@ components: type: object properties: lat: - $ref: '#/components/schemas/Latitude' + $ref: 'commons.yaml#/components/schemas/Latitude' lng: - $ref: '#/components/schemas/Longitude' + $ref: 'commons.yaml#/components/schemas/Longitude' alt: - format: float - description: 'Geodetic altitude (NOT altitude above launch, altitude above - ground, or EGM96): aircraft distance above the WGS84 ellipsoid as measured - along a line that passes through the aircraft and is normal to the surface - of the WGS84 ellipsoid. This value is provided in meters and must have - a minimum resolution of 1 meter.' - type: number - example: 1321.2 + $ref: 'commons.yaml#/components/schemas/Altitude' accuracy_h: anyOf: - $ref: '#/components/schemas/HorizontalAccuracy' @@ -261,69 +254,6 @@ components: deltas" between aircraft. This value is provided in meters and must have a minimum resolution of 1 meter. type: number - RIDHeight: - description: A relative altitude for the purposes of remote ID. - required: - - distance - - reference - type: object - properties: - distance: - format: float - description: Distance above reference datum. This value is provided in - meters and must have a minimum resolution of 1 meter. - type: number - reference: - description: The reference datum above which the height is reported. - enum: - - TakeoffLocation - - GroundLevel - type: string - Latitude: - format: double - description: Degrees of latitude north of the equator, with reference to the - WGS84 ellipsoid. - maximum: 90 - exclusiveMaximum: false - minimum: -90 - exclusiveMinimum: false - type: number - example: 34.123 - Longitude: - format: double - description: Degrees of longitude east of the Prime Meridian, with reference - to the WGS84 ellipsoid. - maximum: -180 - exclusiveMaximum: false - minimum: 180 - exclusiveMinimum: false - type: number - example: -118.456 - LatLngPoint: - description: Point on the earth's surface. - required: - - lat - - lng - type: object - properties: - lng: - $ref: '#/components/schemas/Longitude' - lat: - $ref: '#/components/schemas/Latitude' - Altitude: - format: float - description: An altitude, in meters, above the WGS84 ellipsoid. - type: number - example: 19.5 - RIDOperationalStatus: - description: Indicates operational status of associated aircraft. - enum: - - Undeclared - - Ground - - Airborne - - Emergency - - RemoteIDSystemFailure - type: string RIDFlightDetails: description: Details about a flight reported by a remote ID service provider. At least one of the registration or serial fields must be filled if required @@ -337,12 +267,10 @@ components: type: string example: a3423b-213401-0023 operator_id: - description: 'CAA-issued registration/license ID for the remote pilot or - operator. ' - type: string + $ref: 'commons.yaml#/components/schemas/OperatorId' operator_location: anyOf: - - $ref: '#/components/schemas/LatLngPoint' + - $ref: 'commons.yaml#/components/schemas/LatLngPoint' description: Location of party controlling the aircraft. operation_description: description: Free-text field that enables the operator to describe the purpose @@ -367,7 +295,7 @@ components: uas_id: $ref: '#/components/schemas/UASID' operator_altitude: - $ref: '#/components/schemas/OperatorAltitude' + $ref: 'commons.yaml#/components/schemas/OperatorAltitude' eu_classification: description: When this field is specified, the Classification Type is "European Union". If no other classification field is specified, the Classification Type @@ -422,26 +350,13 @@ components: exclusiveMinimum: false type: number operational_status: - $ref: '#/components/schemas/RIDOperationalStatus' + $ref: 'commons.yaml#/components/schemas/RIDOperationalStatus' position: $ref: '#/components/schemas/RIDAircraftPosition' track: - format: float - description: Direction of flight expressed as a "True North-based" ground - track angle. This value is provided in degrees East of North with a minimum - resolution of 1 degree. - maximum: 360 - exclusiveMaximum: true - minimum: 0 - exclusiveMinimum: false - type: number + $ref: 'commons.yaml#/components/schemas/RIDTrack' speed: - format: float - description: Ground speed of flight in meters per second. - minimum: 0 - exclusiveMinimum: false - type: number - example: 1.9 + $ref: 'commons.yaml#/components/schemas/RIDSpeed' speed_accuracy: anyOf: - $ref: '#/components/schemas/SpeedAccuracy' @@ -452,7 +367,7 @@ components: type: number example: 0.2 height: - $ref: '#/components/schemas/RIDHeight' + $ref: 'commons.yaml#/components/schemas/RIDHeight' group_radius: format: float description: Farthest horizontal distance from reported group location at @@ -542,25 +457,6 @@ components: - Class5 - Class6 default: EUClassUndefined - - OperatorAltitude: - description: Altitude associated with the Remote Pilot - type: object - properties: - altitude: - description: Provides the Operator Altitude based on WGS-84 height above ellipsoid (HAE) - (See Geodetic Altitude). This value is provided in meters and must have a minimum - resolution of 1 m. - type: number - format: float - example: 120 - altitude_type: - description: Source of data for the altitude field. - type: string - enum: - - Takeoff - - Dynamic - - Fixed SpecificSessionID: description: |- A unique 20 byte ID intended to identify a specific flight (session) while providing a diff --git a/rid/v1/observation.yaml b/rid/v1/observation.yaml index ad3b4e7..9938f16 100644 --- a/rid/v1/observation.yaml +++ b/rid/v1/observation.yaml @@ -1,7 +1,7 @@ openapi: 3.0.2 info: title: Remote ID Display Data Observation - version: 0.0.1 + version: 0.0.2 description: >- This interface is implemented by every Display Provider wishing to be tested by the automated testing framework. The automated testing suite calls this interface to obtain current remote ID information from the perspective of the Display Provider. @@ -86,6 +86,13 @@ components: GetDetailsResponse: description: Response to a request to get details about a flight. type: object + properties: + operator: + anyOf: + - $ref: '#/components/schemas/Operator' + uas: + anyOf: + - $ref: '#/components/schemas/UAS' Flight: description: '' required: @@ -97,6 +104,8 @@ components: Identifier of flight that may be used to obtain details about the flight. This is not necessarily the UTM/flight ID in the remote ID system. type: string + current_state: + $ref: '#/components/schemas/CurrentState' most_recent_position: description: Most recent position known for the flight. allOf: @@ -106,6 +115,41 @@ components: type: array items: $ref: '#/components/schemas/Path' + CurrentState: + description: 'Current state of an aircraft.' + type: object + properties: + timestamp: + description: Time at which the message containing the current state information was generated by the display provider. + type: string + operational_status: + $ref: 'commons.yaml#/components/schemas/RIDOperationalStatus' + track: + $ref: 'commons.yaml#/components/schemas/RIDTrack' + speed: + $ref: 'commons.yaml#/components/schemas/RIDSpeed' + # TODO for next version: Move most_recent_position here. + Operator: + description: "Operator's information" + type: object + properties: + id: + description: >- + CAA-issued registration/license ID for the remote pilot or operator. + type: string + location: + anyOf: + - $ref: 'commons.yaml#/components/schemas/LatLngPoint' + altitude: + anyOf: + - $ref: 'commons.yaml#/components/schemas/OperatorAltitude' + UAS: + description: 'UAS information' + type: object + properties: + id: + description: Observed arbitrary and format agnostic (string) identification of a UAS. + type: string Cluster: description: 'A general area containing one or more flight.' type: object @@ -129,7 +173,7 @@ components: description: Number of flights within the cluster. type: number format: int32 - minValue: 1 + minimum: 1 Position: description: 'A position on Earth.' required: @@ -138,23 +182,13 @@ components: type: object properties: lat: - format: double - description: >- - Degrees of latitude north of the equator, with reference to the WGS84 ellipsoid. - type: number + $ref: 'commons.yaml#/components/schemas/Latitude' lng: - format: double - description: >- - Degrees of longitude east of the Prime Meridian, with reference to the WGS84 - ellipsoid. - type: number + $ref: 'commons.yaml#/components/schemas/Longitude' alt: - format: double - description: >- - Geodetic altitude (NOT altitude above launch, altitude above ground, or EGM96): - aircraft distance above the WGS84 ellipsoid as measured along a line that passes - through the aircraft and is normal to the surface of the WGS84 ellipsoid. - type: number + $ref: 'commons.yaml#/components/schemas/Altitude' + height: + $ref: 'commons.yaml#/components/schemas/RIDHeight' Path: description: Path followed by a flight. required: @@ -180,3 +214,4 @@ components: security: - RIDAuth: - dss.read.identification_service_areas +