openapi: 3.0.0 info: title: Nnef_PFDmanagement Service API version: 1.2.0-alpha.3 description: | Packet Flow Description Management Service. © 2021, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. # externalDocs: description: 3GPP TS 29.551 v17.2.0, 5G System; Packet Flow Description Management Service url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.551/' # servers: - url: '{apiRoot}/nnef-pfdmanagement/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - nnef-pfdmanagement paths: /applications: get: summary: Retrieve PFDs for all applications or for one or multiple applications with query parameter. tags: - PFD of applications operationId: Nnef_PFDmanagement_AllFetch parameters: - name: application-ids description: The required application identifier(s) for the returned PFDs. in: query required: true schema: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' minItems: 1 - name: supported-features in: query description: To filter irrelevant responses related to unsupported features schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' responses: '200': description: The PFDs for one or more application identifier(s) in the request URI are returned. content: application/json: schema: type: array items: $ref: '#/components/schemas/PfdDataForApp' minItems: 0 '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '406': $ref: 'TS29571_CommonData.yaml#/components/responses/406' '414': $ref: 'TS29571_CommonData.yaml#/components/responses/414' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' /applications/partial-pull: post: summary: retrieve the PFD(s) by partial update operationId: Nnef_PFDmanagement_AppFetchPartialUpdate tags: - PFD of applications by partial update requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/ApplicationForPfdRequest' minItems: 1 responses: '200': description: OK. Changed PFD(s) is returned content: application/json: schema: type: array items: $ref: '#/components/schemas/PfdDataForApp' minItems: 1 '204': description: The PFD(s) is not changed '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' /applications/{appId}: get: summary: Retrieve the PFD for an application. tags: - Individual application PFD operationId: Nnef_PFDmanagement_IndAppFetch parameters: - name: appId description: The required application identifier(s) for the returned PFDs. in: path required: true schema: type: string - name: supported-features in: query description: To filter irrelevant responses related to unsupported features schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' responses: '200': description: A representation of PFDs for an application in the request URI is returned. content: application/json: schema: $ref: '#/components/schemas/PfdDataForApp' '307': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PFDF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PFDF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '406': $ref: 'TS29571_CommonData.yaml#/components/responses/406' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '414': $ref: 'TS29571_CommonData.yaml#/components/responses/414' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' /subscriptions: post: summary: Subscribe the notification of PFD changes. tags: - PFD subscriptions operationId: Nnef_PFDmanagement_CreateSubscr requestBody: description: a PfdSubscription resource to be created. required: true content: application/json: schema: $ref: '#/components/schemas/PfdSubscription' callbacks: PfdChangeNotification: '{request.body#/notifyUri}': post: summary: Notification of PFD change. tags: - PfdChangeNotification data operationId: Nnef_PFDmanagement_Notify requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/PfdChangeNotification' minItems: 1 responses: '200': description: The PFD operation in the notification is performed and the PfdChangeReport indicates failure reason. content: application/json: schema: type: array items: $ref: '#/components/schemas/PfdChangeReport' minItems: 1 '204': description: The PFD operation in the notification is performed successfully. '307': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: required: true description: 'A URI pointing to the endpoint of an alternative NF consumer (service) instance towards which the notification should be redirected.' schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: required: true description: 'A URI pointing to the endpoint of an alternative NF consumer (service) instance towards which the notification should be redirected.' schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' NotificationPush: '{request.body#/notifyUri}/notifypush': post: summary: Notification Push. tags: - NotificationPush data operationId: Nnef_PFDmanagement_PushNotify requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/NotificationPush' minItems: 1 responses: '204': description: Notificaiton PUSH is accepted. '307': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: required: true description: 'A URI pointing to the endpoint of an alternative NF consumer (service) instance towards which the notification should be redirected.' schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: required: true description: 'A URI pointing to the endpoint of an alternative NF consumer (service) instance towards which the notification should be redirected.' schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the notification request is redirected' schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' responses: '201': description: The creation of a PfdSubscription resource is confirmed and a representation of that resource is returned. content: application/json: schema: $ref: '#/components/schemas/PfdSubscription' headers: Location: description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/nnef-pfdmanagement/v1/subscriptions/{subscriptionId}' required: true schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' /subscriptions/{subscriptionId}: put: summary: Updates/replaces an existing subscription resource tags: - Individual PFD subscription operationId: Nnef_PFDmanagement_ModifySubscr parameters: - name: subscriptionId description: Identify the subscription. in: path required: true schema: type: string requestBody: description: Parameters to update/replace the existing subscription required: true content: application/json: schema: $ref: '#/components/schemas/PfdSubscription' responses: '200': description: OK (Successful update of the subscription) content: application/json: schema: $ref: '#/components/schemas/PfdSubscription' '307': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PFDF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PFDF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29571_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29571_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29571_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' delete: summary: Delete a subscription of PFD change notification. tags: - Individual PFD subscription operationId: Nnef_PFDmanagement_Unsubscribe parameters: - name: subscriptionId description: Identify the subscription. in: path required: true schema: type: string responses: '204': description: The PfdSubscription resource matching the subscriptionId was deleted successfully. '307': description: Temporary Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PFDF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '308': description: Permanent Redirect content: application/problem+json: schema: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' headers: Location: description: 'An alternative URI of the resource located on an alternative PFDF (service) instance.' required: true schema: type: string 3gpp-Sbi-Target-Nf-Id: description: 'Identifier of the target NF (service) instance towards which the request is redirected' schema: type: string '400': $ref: 'TS29571_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29571_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29571_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29571_CommonData.yaml#/components/responses/404' '429': $ref: 'TS29571_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '{nrfApiRoot}/oauth2/token' scopes: nnef-pfdmanagement: Access to the Nnef_PFDmanagement API schemas: # # STRUCTURED DATA TYPES # PfdContent: description: Represents the content of a PFD for an application identifier. type: object properties: pfdId: type: string description: Identifies a PDF of an application identifier. flowDescriptions: type: array items: type: string minItems: 1 description: Represents a 3-tuple with protocol, server ip and server port for UL/DL application traffic. urls: type: array items: type: string minItems: 1 description: Indicates a URL or a regular expression which is used to match the significant parts of the URL. domainNames: type: array items: type: string minItems: 1 description: Indicates an FQDN or a regular expression as a domain name matching criteria. dnProtocol: $ref: 'TS29122_PfdManagement.yaml#/components/schemas/DomainNameProtocol' PfdDataForApp: description: Represents the PFDs for an application identifier. type: object properties: applicationId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' pfds: type: array items: $ref: '#/components/schemas/PfdContent' minItems: 1 cachingTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' pfdTimestamp: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' partialFlag: type: boolean required: - applicationId PfdSubscription: description: Represents a PFD subscription. type: object properties: applicationIds: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' minItems: 1 notifyUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - notifyUri - supportedFeatures PfdChangeNotification: description: Represents information related to a notification of PFD change. type: object properties: applicationId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' removalFlag: type: boolean default: false partialFlag: type: boolean default: false pfds: type: array items: $ref: '#/components/schemas/PfdContent' minItems: 1 required: - applicationId NotificationPush: description: Represents the information to be used by the NF service consumer to retrieve the PFDs and/or remove the PFDs of the applicable application identifier(s). type: object properties: appIds: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' minItems: 1 allowedDelay: $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec' pfdOp: $ref: '#/components/schemas/PfdOperation' required: - appIds PfdChangeReport: description: Represents an error report on PFD change. type: object properties: pfdError: $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails' applicationId: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' minItems: 1 required: - pfdError - applicationId PfdOperation: description: Indicates the operation to be applied on PFD(s). anyOf: - type: string enum: - RETRIEVE - FULLPULL - PARTIALPULL - REMOVE - type: string ApplicationForPfdRequest: description: Contains the application identifer(s) for the PFD(s) request. type: object properties: applicationId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' pfdTimestamp: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' required: - applicationId