openapi: 3.0.0 info: title: 3gpp-uav-fa version: 1.0.0 description: | API for UAV Flight Assistance. © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: > 3GPP TS 29.522 V19.5.0; 5G System; Network Exposure Function Northbound APIs. url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.522/ servers: - url: '{apiRoot}/3gpp-uav-fa/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122. security: - {} - oAuth2ClientCredentials: [] paths: /{afId}/configurations: parameters: - name: afId in: path description: Represents the identifier of the AF. required: true schema: type: string get: summary: Request to retrieve all the active UAV Flight Assistance Configurations at the NEF. operationId: GetUavFlightAssistConfig tags: - UAV Flight Assistance Configurations (Collection) responses: '200': description: > OK. All the Individual UAV Flight Assistance Configuration resources managed by the NEF are returned. If there are no existing Individual UAV Flight Assistance Configuration resources managed at the NEF, an empty array is returned. content: application/json: schema: type: array items: $ref: '#/components/schemas/UavFlightAssistance' minItems: 0 '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '406': $ref: 'TS29122_CommonData.yaml#/components/responses/406' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' post: summary: Request the creation of a new UAV Flight Assistance Configuration. operationId: CreateUavFlightAssistConfig tags: - UAV Flight Assistance Configurations (Collection) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UavFlightAssistance' responses: '201': description: > Created. The UAV Flight Assistance Configuration is successfully created and a representation of the created Individual UAV Flight Assistance Configuration resource shall be returned. content: application/json: schema: $ref: '#/components/schemas/UavFlightAssistance' headers: Location: description: > Contains the URI of the created Individual UAV Flight Assistance Configuration resource. required: true schema: type: string '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' callbacks: UavFlightAssistNotif: '{$request.body#/notifUri}': post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UAVFlightAssistNotif' responses: '200': description: > OK. The notification is successfully received and acknowledged, and notification related information is returned in the response body. content: application/json: schema: $ref: '#/components/schemas/UAVFlightAssistNotifResp' '204': description: > No Content. The notification is successfully received and acknowledged. '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' /{afId}/configurations/{configurationId}: parameters: - name: afId description: Represents the identifier of the AF. in: path required: true schema: type: string - name: configurationId description: > Represents the identifier of the Individual UAV Flight Assistance Configuration resource. in: path required: true schema: type: string get: summary: Request to retrieve an existing Individual UAV Flight Assistance Configuration resource. operationId: GetIndUavFlightAssistConfig tags: - Individual UAV Flight Assistance Configuration (Document) responses: '200': description: > OK. The requested Individual UAV Flight Assistance Configuration resource is returned in the response body. content: application/json: schema: $ref: '#/components/schemas/UavFlightAssistance' '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '406': $ref: 'TS29122_CommonData.yaml#/components/responses/406' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' put: summary: Request to update an existing Individual UAV Flight Assistance Configuration. operationId: UpdateIndUavFlightAssistConfig tags: - Individual UAV Flight Assistance Configuration (Document) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UavFlightAssistance' responses: '200': description: > OK. The Individual UAV Flight Assistance Configuration resource is successfully updated and a representation of the updated resource is returned in the response body. content: application/json: schema: $ref: '#/components/schemas/UavFlightAssistance' '204': description: > No Content. The Individual UAV Flight Assistance Configuration resource is successfully updated and no content is returned in the response body. '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' patch: summary: Request the modification of an existing Individual UAV Flight Assistance Configuration resource. tags: - Individual Group Parameters Provisioning (Document) operationId: ModifyIndUavFlightAssistConfig requestBody: required: true content: application/merge-patch+json: schema: $ref: '#/components/schemas/UavFlightAssistancePatch' responses: '200': description: > OK. The Individual UAV Flight Assistance Configuration resource is successfully modified and a representation of the updated resource is returned in the response body. content: application/json: schema: $ref: '#/components/schemas/UavFlightAssistance' '204': description: > No Content. The Individual UAV Flight Assistance Configuration resource is successfully modified and no content is returned in the response body. '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' delete: summary: Request the deletion of an existing Individual UAV Flight Assistance Configuration. operationId: DeleteIndUavFlightAssistConfig tags: - Individual UAV Flight Assistance Configuration (Document) responses: '204': description: > No Content. The Individual UAV Flight Assistance Configuration resource is successfully deleted. '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' /{afId}/retrieve: parameters: - name: afId in: path description: Represents the identifier of the AF. required: true schema: type: string post: summary: Request to retrieve UAV flight information. operationId: RetrieveUAVFlightInfo tags: - Retrieve (custom operation without associated resources) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UAVFlightInfoReq' responses: '200': description: > OK. The UAV Flight information retrieval request is successfully processed, and the the requested UAV Flight information is returned in the response body. content: application/json: schema: $ref: '#/components/schemas/UAVFlightInfoResp' '307': $ref: 'TS29122_CommonData.yaml#/components/responses/307' '308': $ref: 'TS29122_CommonData.yaml#/components/responses/308' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '{tokenUrl}' scopes: {} schemas: # # STRUCTURED DATA TYPES # UavFlightAssistance: description: Represents the UAV Flight Assistance Configuration. type: object properties: uavId: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' reqPurpose: $ref: '#/components/schemas/RequestPurpose' monitorMode: $ref: '#/components/schemas/MonitoringMode' environingUavs: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' minItems: 1 preSetDistance: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/LinearDistance' qosSustReq: $ref: 'TS29522_AnalyticsExposure.yaml#/components/schemas/AnalyticsEventFilter' notifUri: $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri' flightPath: $ref: '#/components/schemas/FlightPath' altitudeRep: type: array items: $ref: '#/components/schemas/AltitudeReport' minItems: 1 altitudeRepReqs: $ref: '#/components/schemas/AltitudeRepReqs' stopAltRepInd: type: boolean enum: - true description: > Indicates whether to stop the altitude reporting for the UAV UE. Set to true indicates to stop the altitude reporting for the UAV UE. When present, this attribute shall be set to true. The presence of this attribute set to the value false is forbidden. This attribute may be present only in the PUT request. suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - uavId - reqPurpose - notifUri FlightPath: description: Represents a flight path. type: object properties: pathSegInfo: type: array items: $ref: '#/components/schemas/FlightPathSegInfo' minItems: 1 required: - pathSegInfo FlightPathSegInfo: description: Represents a flight path segment. type: object properties: flightSeg: $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G' ussId: type: string candBdCrsPoints: type: array items: $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G' minItems: 1 uavSpeed: $ref: 'TS29571_CommonData.yaml#/components/schemas/Float' altitude: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/Altitude' timeSchedule: $ref: 'TS29122_CommonData.yaml#/components/schemas/TimeWindow' timeDuration: $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSec' required: - flightSeg - ussId not: required: [timeSchedule, timeDuration] UAVFlightAssistNotif: description: Represents the UAV Flight Assistance Notification. type: object properties: subscriptionId: type: string uavStatus: $ref: '#/components/schemas/UavStatus' bdCrsPoint: $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G' altitude: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/Altitude' altitudeRptInd: type: boolean enum: - true description: > Indicates whether the UAV altitude reporting is successful or not. true indicates the failure of UAV altitude reporting. uavLocation: $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G' uavTrajectInd: type: boolean description: > Indicates whether the UAV is following the assigned path/trajectory. - "true" indicates that the UAV is following the assigned path/trajectory. - "false" indicates that UAV is not following the assign path/trajectory. - The default value is "false" when this attribute is omitted. uavPresList: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' minItems: 1 rangSlUavData: type: array items: $ref: '#/components/schemas/RangSlUavData' minItems: 1 qosSustainInfoData: type: array items: $ref: 'TS29522_AnalyticsExposure.yaml#/components/schemas/QosSustainabilityExposure' minItems: 1 altitudeRepReqs: $ref: '#/components/schemas/AltitudeRepReqs' required: - subscriptionId - uavStatus not: required: [altitude, altitudeRptInd] UAVFlightAssistNotifResp: description: Represents the response to a UAV Flight Assistance Notification. type: object properties: ussChgInd: type: boolean description: > This attribute is used to indicate whether the USS changeover was completed successfully. true indicates that USS changeover was successful. false indicates that USS changeover failed. required: - ussChgInd UavFlightAssistancePatch: description: Represents the requested modifications to a UAV Flight Assistance Configuration. type: object properties: notifUri: $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri' flightPath: $ref: '#/components/schemas/FlightPath' altitudeRep: type: array items: $ref: '#/components/schemas/AltitudeReport' minItems: 1 altitudeRepReqs: $ref: '#/components/schemas/AltitudeRepReqs' stopAltRepInd: type: boolean enum: - true description: > Indicates whether to stop the altitude reporting for the UAV UE. Set to true indicates to stop the altitude reporting for the UAV UE. When present, this attribute shall be set to true. The presence of this attribute set to the value false is forbidden. AltitudeRepReqs: description: Represents the UAV's altitude reporting requirements. type: object properties: repThresholds: $ref: '#/components/schemas/AltThresholds' repPeriodicity: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' repEvents: type: array items: $ref: '#/components/schemas/AltitudeRepEvent' minItems: 1 oneOf: - required: [repThresholds] - required: [repPeriodicity] - required: [repEvents] AltitudeReport: description: Represents the UAV's altitude report. type: object properties: altitude: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/Altitude' event: $ref: '#/components/schemas/AltitudeRepEvent' timeStamp: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' required: - altitude AltThresholds: description: Represents the UAV's altitude thresholds. type: object properties: lowerBound: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/Altitude' upperBound: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/Altitude' anyOf: - required: [lowerBound] - required: [upperBound] RangSlUavData: description: Represents the Ranging and Slidelink UAV data. type: object properties: uavId: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' presetDistInd: type: boolean description: > Indicates whether the Ranging/Sidelink distance to the target UAV is small than the preset distance value. - "true" indicates that the distance is smaller than the preset distance value. - "false" indicates that the distance is not smaller than the preset distance value. - The default value is "false" when this attribute is omitted. rangSlDistance: $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/LinearDistance' required: - uavId anyOf: - required: [presetDistInd] - required: [rangSlDistance] UAVFlightInfoReq: description: Represents the UAV Flight information retrieval request. type: object properties: gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' retrievePurpose: $ref: '#/components/schemas/RetrievePurpose' targetUssList: type: array items: type: string minItems: 1 canFltPathsInfo: type: array items: $ref: '#/components/schemas/CandidateFlightPathInfo' minItems: 1 suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - gpsi - retrievePurpose CandidateFlightPathInfo: description: Represents the candidate flight path information. type: object properties: borderCrssPnt: $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G' accptDeviatDist: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' accptDeviatTime: $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSec' canFlightPath: $ref: '#/components/schemas/FlightPath' UAVFlightInfoResp: description: Represents the UAV Flight information retrieval response. type: object properties: retrievedResults: type: array items: $ref: '#/components/schemas/UAVFlightAssistNotif' minItems: 1 suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - retrievedResults # # ENUMERATIONS # UavStatus: anyOf: - type: string enum: - LEAVING - ENTERING - DEVIATING - type: string description: > This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. description: | Represents the status of the UAV. Possible values are: - LEAVING: Indicates that the UAV status is leaving an area which is part of the planned flight path. - ENTERING: Indicates that the UAV status is entering an area which is part of the planned flight path. - DEVIATING: Indicates that the UAV status is deviating from the planned flight path. RequestPurpose: anyOf: - type: string enum: - USS_CHANGEOVER - IN_FLIGHT_MONITORING - type: string description: > This string provides forward-compatibility with future extensions to the enumeration and is not used to encode content defined in the present version of this API. description: | Represents the UAV Flight Assitance request purpose. Possible values are: - USS_CHANGEOVER: Indicates that the purpose of the request is pre-flight planning. - IN_FLIGHT_MONITORING:Indicates that the purpose of the request is in-flight monitoring. AltitudeRepEvent: anyOf: - type: string enum: - TA_CHANGE - RAN_NODE_CHANGE - GEO_LOCATION_CHANGE - ANY_ALTITUDE_CHANGE - type: string description: > This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. description: | Represents the UAV's altitude reporting event. Possible values are: - TA_CHANGE: Indicates that the UAV's altitude reporting trigger is the change of the UAV's serving TA. - RAN_NODE_CHANGE: Indicates that the UAV's altitude reporting trigger is the change of the UAV's serving RAN node. - GEO_LOCATION_CHANGE: Indicates that the UAV's altitude reporting trigger is the change of the UAV's geographical location. - ANY_ALTITUDE_CHANGE: Indicates that the UAV's altitude reporting trigger is any change of the UAV's altitude. MonitoringMode: anyOf: - type: string enum: - UAV_LOCATION - FLIGHT_TRAJECTORY - FLIGHT_ENVIRONMENT - RANGING_SIDELINK_POSITION - QOS_SUSTAINABILITY_ANALYTICS - type: string description: > This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. description: | Represents in UAV Flight Assistance monitoring mode. Possible values are: - UAV_LOCATION: Indicates that the monitoring mode is UAV location monitoring. - FLIGHT_TRAJECTORY: Indicates that the monitoring mode is flight trajectory monitoring. - FLIGHT_ENVIRONMENT: Indicates that the monitoring mode is flight environment monitoring. - RANGING_SIDELINK_POSITION: Indicates that the monitoring mode is Ranging/Sidelink positioning location monitoring. - QOS_SUSTAINABILITY_ANALYTICS: Indicates that the monitoring mode is QoS sustainability analytics monitoring. RetrievePurpose: anyOf: - type: string enum: - USS_CHANGEOVER - PRE_FLIGHT_PLANNING - type: string description: > This string provides forward-compatibility with future extensions to the enumeration and is not used to encode content defined in the present version of this API. description: | Represents the purpose of the retrieved UAV flight information. Possible values are: - USS_CHANGEOVER: Indicates that the purpose of the UAV Flight information retrieval is USS changeover. - PRE_FLIGHT_PLANNING: Indicates that the purpose of the UAV Flight information retrieval is pre-flight planning.