openapi: 3.0.0 info: version: 1.1.0.alpha-1 title: Npcf_EventExposure description: | PCF Event Exposure Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.523 V16.0.0; 5G System; Policy Control Event Exposure Service; Stage 3. url: http://www.3gpp.org/ftp/Specs/archive/29_series/29.523/ servers: - url: '{apiRoot}/npcf-eventexposure/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - npcf-eventexposure paths: /subscriptions: post: summary: Creates a new Individual Policy Control Events Subscription resource operationId: PostPcEventExposureSubsc tags: - Policy Control Events Subscription (Collection) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PcEventExposureSubsc' responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/PcEventExposureSubsc' headers: Location: description: 'Contains the URI of the created individual policy control events subscription resource, according to the structure: {apiRoot}/npcf-eventexposure/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' callbacks: PcEventNotification: '{$request.body#/notifUri}': post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PcEventExposureNotif' responses: '204': description: No Content, Notification was succesfull '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}: get: summary: "Reads an existing Individual Policy Control Events Subscription" operationId: GetPcEventExposureSubsc tags: - Individual Policy Control Events Subscription (Document) parameters: - name: subscriptionId in: path description: Policy Control Event Subscription ID required: true schema: type: string responses: '200': description: OK. Resource representation is returned content: application/json: schema: $ref: '#/components/schemas/PcEventExposureSubsc' '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' '500': $ref: 'TS29571_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29571_CommonData.yaml#/components/responses/503' default: $ref: 'TS29571_CommonData.yaml#/components/responses/default' put: summary: "Modifies an existing Individual Policy Control Events Subscription " operationId: PutPcEventExposureSubsc tags: - Individual Policy Control Events Subscription (Document) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PcEventExposureSubsc' parameters: - name: subscriptionId in: path description: Policy Control Event Subscription ID required: true schema: type: string responses: '200': description: OK. Resource was succesfully modified and representation is returned content: application/json: schema: $ref: '#/components/schemas/PcEventExposureSubsc' '204': description: No Content. Resource was succesfully modified '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: "Cancels an existing Individual Policy Control Events Subscription " operationId: DeletePcEventExposureSubsc tags: - Individual Policy Control Events Subscription (Document) parameters: - name: subscriptionId in: path description: Policy Control Event Subscription ID required: true schema: type: string responses: '204': description: No Content. Resource was succesfully deleted '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: npcf-eventexposure: Access to the Npcf_EventExposure API. schemas: PcEventExposureNotif: type: object properties: notifId: type: string eventNotifs: type: array items: $ref: '#/components/schemas/PcEventNotification' minItems: 1 required: - notifId - eventNotifs PcEventExposureSubsc: type: object properties: eventSubs: type: array items: $ref: '#/components/schemas/PcEvent' minItems: 1 eventsRepInfo: $ref: '#/components/schemas/ReportingInformation' groupId: $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId' filterDnns: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' minItems: 1 filterSnssais: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' minItems: 1 filterServices: type: array items: $ref: '#/components/schemas/ServiceIdentification' minItems: 1 notifUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' notifId: type: string suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - eventSubs - notifId - notifUri ReportingInformation: type: object properties: immRep: type: boolean notifMethod: $ref: 'TS29508_Nsmf_EventExposure.yaml#/components/schemas/NotificationMethod' maxReportNbr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' monDur: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' repPeriod: $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec' sampRatio: $ref: 'TS29571_CommonData.yaml#/components/schemas/SamplingRatio' grpRepTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec' ServiceIdentification: type: object properties: servEthFlows: type: array items: $ref: '#/components/schemas/EthernetFlowInfo' minItems: 1 servIpFlows: type: array items: $ref: '#/components/schemas/IpFlowInfo' minItems: 1 afAppId: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AfAppId' # All conditions in allOf must be met allOf: # First condition is that servEthFlows and servIpFlows are mutually exclusive - not: required: [servEthFlows, servIpFlows] # Second condition is that at least one the servEthFlows, servIpFlows and afAppId shall be present - anyOf: - required: [servEthFlows] - required: [servIpFlows] - required: [afAppId] EthernetFlowInfo: type: object properties: ethFlows: type: array items: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription' minItems: 1 maxItems: 2 flowNumber: type: integer required: - flowNumber IpFlowInfo: type: object properties: ipFlows: type: array items: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/FlowDescription' minItems: 1 maxItems: 2 flowNumber: type: integer required: - flowNumber PcEventNotification: type: object properties: event: $ref: '#/components/schemas/PcEvent' accType: $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType' anGwAddr: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/AnGwAddress' ratType: $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType' plmnId: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' timeStamp: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' pduSessionInfo: $ref: '#/components/schemas/PduSessionInformation' repServices: $ref: '#/components/schemas/ServiceIdentification' required: - event - timeStamp PduSessionInformation: type: object properties: snssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' dnn: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' ueIpv4: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' ueIpv6: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' ipDomain: type: string ueMac: $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48' required: - snssai - dnn oneOf: - required: [ueMac] - anyOf: - required: [ueIpv4] - required: [ueIpv6] # Simple data types and Enumerations PcEvent: anyOf: - type: string enum: - AC_TY_CH - PLMN_CH - type: string