openapi: 3.0.0 info: version: 1.1.0.alpha-3 title: Nsmf_EventExposure description: | Session Management Event Exposure Service. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.508 V16.2.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' dddTraDes: $ref: '#/components/schemas/DddTrafficDescriptor' dddStati: type: array items: $ref: '#/components/schemas/DddStatus' 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: '#/components/schemas/DddStatus' maxWaitTime: $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime' commFailure: $ref: 'TS29518_Namf_EventExposure.yaml#/components/schemas/CommunicationFailure' required: - event - timeStamp DddTrafficDescriptor: type: object properties: ipv4Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr' ipv6Addr: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr' port: $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger' macAddr: $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48' 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 - 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 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 DddStatus: anyOf: - type: string enum: - BUFFERED - TRANSMITTED - DISCARDED - 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 - BUFFERED: The first downlink data is buffered with extended buffering matching the source of the downlink traffic. - TRANSMITTED: The first downlink data matching the source of the downlink traffic is transmitted after previous buffering or discarding of corresponding packet(s) because the UE of the PDU Session becomes ACTIVE, and buffered data can be delivered to UE. - DISCARDED: The first downlink data matching the source of the downlink traffic is discarded because the Extended Buffering time, as determined by the SMF, expires or the amount of downlink data to be buffered is exceeded.