openapi: 3.0.0 info: version: 1.0.4 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 V15.7.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: Created. 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 successful. '307': description: Temporary Redirect headers: Location: description: 'The URI pointing to the endpoint of another NF service consumer to which the notification should be sent.' 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/{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 successfully modified and representation is returned content: application/json: schema: $ref: '#/components/schemas/NsmfEventExposure' '204': description: No Content. Resource was successfully 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 successfully 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 address(es) where to send Notifications. minItems: 1 altNotifIpv6Addrs: type: array items: $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr' description: Alternate or backup IPv6 address(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: type: string description: If the NF service consumer is an AMF, it should provide the name of a service produced by the AMF that makes use of notifications about subscribed events. supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' 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 required: - notifId - eventNotifs EventSubscription: type: object properties: event: $ref: '#/components/schemas/SmfEvent' dnaiChgType: $ref: 'TS29571_CommonData.yaml#/components/schemas/DnaiChangeType' 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' 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. In an OpenAPI schema, the format shall be designated as "SubId". SmfEvent: anyOf: - type: string enum: - AC_TY_CH - UP_PATH_CH - PDU_SES_REL - PLMN_CH - UE_IP_CH - 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 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