openapi: 3.0.0 info: version: 1.1.0.alpha-4 title: Nsmf_EventExposure description: | Session Management Event Exposure Service. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.508 V16.3.0; 5G System; Session Management Event Exposure Service. url: http://www.3gpp.org/ftp/Specs/archive/29_series/29.508/ servers: - url: '{apiRoot}/nsmf_event-exposure/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 4.4 of 3GPP TS 29.501 security: - {} - oAuth2ClientCredentials: - nsmf-event-exposure paths: /subscriptions: post: operationId: CreateIndividualSubcription summary: Create an individual subscription for event notifications from the SMF tags: - Subscriptions (Collection) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NsmfEventExposure' responses: '201': description: Success headers: Location: description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/nsmf-event-exposure/v1/subscriptions/{subId}' required: true schema: type: string content: application/json: schema: $ref: '#/components/schemas/NsmfEventExposure' '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: myNotification: '{$request.body#/notifUri}': post: requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NsmfEventExposureNotification' responses: '204': description: No Content, Notification was succesfull '307': description: temporary redirect '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: afAcknowledgement: '{request.body#/ackUri}': post: requestBody: # contents of the callback message required: true content: application/json: schema: $ref: '#/components/schemas/AckOfNotify' responses: '204': description: No Content (successful acknowledgement) '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/{subId}: get: operationId: GetIndividualSubcription summary: Read an individual subscription for event notifications from the SMF tags: - IndividualSubscription (Document) parameters: - name: subId in: path description: Event Subscription ID required: true schema: type: string responses: '200': description: OK. Resource representation is returned content: application/json: schema: $ref: '#/components/schemas/NsmfEventExposure' '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: operationId: ReplaceIndividualSubcription summary: Replace an individual subscription for event notifications from the SMF tags: - IndividualSubscription (Document) requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NsmfEventExposure' parameters: - name: subId in: path description: 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/NsmfEventExposure' '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: operationId: DeleteIndividualSubcription summary: Delete an individual subscription for event notifications from the SMF tags: - IndividualSubscription (Document) parameters: - name: subId in: path description: 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: nsmf-event-exposure: Access to the Nsmf_EventExposure API schemas: NsmfEventExposure: description: Represents an Individual SMF Notification Subscription resource. The serviveName property corresponds to the serviceName in the main body of the specification. type: object properties: supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' anyUeInd: type: boolean description: Any UE indication. This IE shall be present if the event subscription is applicable to any UE. Default value "FALSE" is used, if not present. groupId: $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId' pduSeId: $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId' subId: $ref: '#/components/schemas/SubId' notifId: type: string description: Notification Correlation ID assigned by the NF service consumer. notifUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' altNotifIpv4Addrs: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' description: Alternate or backup IPv4 Addess(es) where to send Notifications. minItems: 1 altNotifIpv6Addrs: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr' description: Alternate or backup IPv6 Addess(es) where to send Notifications. minItems: 1 eventSubs: type: array items: $ref: '#/components/schemas/EventSubscription' minItems: 1 description: Subscribed events ImmeRep: type: boolean notifMethod: $ref: '#/components/schemas/NotificationMethod' maxReportNbr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' expiry: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' repPeriod: $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec' guami: $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami' serviveName: $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/ServiceName' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' sampRatio: $ref: 'TS29571_CommonData.yaml#/components/schemas/SamplingRatio' grpRepTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec' required: - notifId - notifUri - eventSubs NsmfEventExposureNotification: type: object properties: notifId: type: string description: Notification correlation ID eventNotifs: type: array items: $ref: '#/components/schemas/EventNotification' minItems: 1 description: Notifications about Individual Events ackUri: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri' required: - notifId - eventNotifs EventSubscription: type: object properties: event: $ref: '#/components/schemas/SmfEvent' dnaiChgType: $ref: 'TS29571_CommonData.yaml#/components/schemas/DnaiChangeType' dddTraDescriptors: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/DddTrafficDescriptor' minItems: 1 dddStati: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/DlDataDeliveryStatus' minItems: 1 appIds: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' minItems: 1 required: - event EventNotification: type: object properties: event: $ref: '#/components/schemas/SmfEvent' timeStamp: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' sourceDnai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai' targetDnai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai' dnaiChgType: $ref: 'TS29571_CommonData.yaml#/components/schemas/DnaiChangeType' sourceUeIpv4Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' sourceUeIpv6Prefix: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' targetUeIpv4Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' targetUeIpv6Prefix: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' sourceTraRouting: $ref: 'TS29571_CommonData.yaml#/components/schemas/RouteToLocation' targetTraRouting: $ref: 'TS29571_CommonData.yaml#/components/schemas/RouteToLocation' ueMac: $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48' adIpv4Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' adIpv6Prefix: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' reIpv4Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' reIpv6Prefix: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' plmnId: $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' accType: $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType' pduSeId: $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId' dddStatus: $ref: 'TS29571_CommonData.yaml#/components/schemas/DlDataDeliveryStatus' dddTraDescriptor: $ref: 'TS29571_CommonData.yaml#/components/schemas/DddTrafficDescriptor' maxWaitTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' commFailure: $ref: 'TS29518_Namf_EventExposure.yaml#/components/schemas/CommunicationFailure' ipv4Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' ipv6Prefixes: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix' minItems: 1 ipv6Addrs: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr' minItems: 1 pduSessType: $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType' qfi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Qfi' appId: $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId' ethfDescs: type: array items: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription' minItems: 1 maxItems: 2 fDescs: type: array items: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/FlowDescription' minItems: 1 maxItems: 2 dnn: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' snssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' ulDelays: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' minItems: 1 dlDelays: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' minItems: 1 rtDelays: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' minItems: 1 required: - event - timeStamp SubId: type: string format: SubId description: Identifies an Individual SMF Notification Subscription. To enable that the value is used as part of a URI, the string shall only contain characters allowed according to the "lower-with-hyphen" naming convention defined in 3GPP TS 29.501 [2]. In an OpenAPI [10] schema, the format shall be designated as "SubId". AckOfNotify: type: object properties: notifId: type: string ackResult: $ref: 'TS29522_TrafficInfluence.yaml#/components/schemas/AfResultInfo' supi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi' gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' required: - notifId - ackResult SmfEvent: anyOf: - type: string enum: - AC_TY_CH - UP_PATH_CH - PDU_SES_REL - PLMN_CH - UE_IP_CH - DDDS - COMM_FAIL - PDU_SES_EST - QFI_ALLOC - QOS_MON - 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: > Possible values are - AC_TY_CH: Access Type Change - UP_PATH_CH: UP Path Change - PDU_SES_REL: PDU Session Release - PLMN_CH: PLMN Change - UE_IP_CH: UE IP address change - DDDS: Downlink data delivery status - COMM_FAIL: Communication Failure - PDU_SES_EST: PDU Session Establishment - QFI_ALLOC: QFI allocation - QOS_MON: QoS Monitoring NotificationMethod: anyOf: - type: string enum: - PERIODIC - ONE_TIME - ON_EVENT_DETECTION - 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: > Possible values are - PERIODIC - ONE_TIME - ON_EVENT_DETECTION