Commit 96424663 authored by belling's avatar belling
Browse files

Upload New File

parent 8b04b785
Loading
Loading
Loading
Loading

TS29503_Nudm_EE.yaml

0 → 100644
+325 −0
Original line number Diff line number Diff line
openapi: 3.0.0

info:
  version: '1.0.1'
  title: 'Nudm_EE'
  description: 'Nudm Event Exposure Service'

externalDocs:
  description: 3GPP TS 29.503 Unified Data Management Services, version 15.3.0
  url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.503/'

servers:
  - url: '{apiRoot}/nudm-ee/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501.

security:
  - oAuth2ClientCredentials:
    - nudm-ee
  - {}

paths:
  /{ueIdentity}/ee-subscriptions:
    post:
      summary: Subscribe
      operationId: CreateEeSubscription
      tags:
        - Create EE Subscription
      parameters:
        - name: ueIdentity
          in: path
          description: Represents the scope of the UE for which the subscription is applied. Contains the GPSI of the user or the external group ID or any UE.
          required: true
          schema:
            type: string
            pattern: '^(msisdn-[0-9]{5,15}|.+|extid-[^@]+@[^@]+|extgroupid-[^@]+@[^@]+|anyUE)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EeSubscription'
        required: true
      responses:
        '201':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatedEeSubscription'
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/nudm-ee/v1/{ueIdentity}/ee-subscriptions/{subscriptionId}'
              required: true
              schema:
                type: string
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '501':
          $ref: 'TS29571_CommonData.yaml#/components/responses/501'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
      callbacks:
        eventOccurrenceNotification:
          '{request.body#/callbackReference}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      type: array
                      items:
                        $ref: '#/components/schemas/MonitoringReport'
                      minItems: 1
              responses:
                '204':
                  description: Successful Notification response
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '404':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/404'
                '500':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/500'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
                default:
                  description: Unexpected error

  /{ueIdentity}/ee-subscriptions/{subscriptionId}:
    delete:
      summary: Unsubscribe
      operationId: DeleteEeSubscription
      tags:
        - Delete EE Subscription
      parameters:
        - name: ueIdentity
          in: path
          description: Represents the scope of the UE for which the subscription is applied. Contains the GPSI of the user or the external group ID or any UE.
          required: true
          schema:
            type: string
            pattern: '^(msisdn-[0-9]{5,15}|.+|extid-[^@]+@[^@]+|extgroupid-[^@]+@[^@]+|anyUE)$'
        - name: subscriptionId
          in: path
          description: Id of the EE Subscription
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Successful response
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
    patch:
      summary: Patch
      operationId: UpdateEeSubscription
      tags:
        - Update EE Subscription
      parameters:
        - name: ueIdentity
          in: path
          description: Represents the scope of the UE for which the subscription is applied. Contains the GPSI of the user or the external group ID or any UE.
          required: true
          schema:
            type: string
            pattern: '^(msisdn-[0-9]{5,15}|.+|extid-[^@]+@[^@]+|extgroupid-[^@]+@[^@]+|anyUE)$'
        - name: subscriptionId
          in: path
          description: Id of the EE Subscription
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/PatchItem'
              minItems: 1
        required: true
      responses:
        '204': 
          description: Successful response
        '403': 
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404': 
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        default:
          description: Unexpected error

components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows: 
        clientCredentials: 
          tokenUrl: '{nrfApiRoot}/oauth2/token'
          scopes:
            nudm-ee: Access to the nudm-ee API


  schemas:

# COMPLEX TYPES:

    CreatedEeSubscription:
      type: object
      required:
        - eeSubscription
      properties:
        eeSubscription:
            $ref: '#/components/schemas/EeSubscription'
        numberOfUes:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        eventReports:
            type: array
            items:
              $ref: '#/components/schemas/MonitoringReport'
            minItems: 1

    EeSubscription:
      type: object
      required:
        - callbackReference
        - monitoringConfigurations
      properties:
        callbackReference:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        monitoringConfigurations:
          description: A map (list of key-value pairs where ReferenceId serves as key) of MonitoringConfigurations
          type: object
          additionalProperties:
            $ref: '#/components/schemas/MonitoringConfiguration'
          minProperties: 1  
        reportingOptions:
          $ref: '#/components/schemas/ReportingOptions'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'

    MonitoringConfiguration:
      type: object
      required:
        - eventType
      properties:
        eventType:
          $ref: '#/components/schemas/EventType'
        immediateFlag:
          type: boolean
        locationReportingConfiguration:
          $ref: '#/components/schemas/LocationReportingConfiguration'

    LocationReportingConfiguration:
      type: object
      required:
        - currentLocation
      properties:
        currentLocation:
          type: boolean
        oneTime:
          type: boolean
        accuracy:
          $ref: '#/components/schemas/LocationAccuracy'

    ReportingOptions:
      type: object
      properties:
        maxNumOfReports:
          $ref: '#/components/schemas/MaxNumOfReports'
        expiry:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'

    MonitoringReport:
      type: object
      required:
        - referenceId
        - eventType
        - timeStamp
      properties:
        referenceId:
          $ref: '#/components/schemas/ReferenceId'
        eventType:
          $ref: '#/components/schemas/EventType'
        report:
          $ref: '#/components/schemas/Report'
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        timeStamp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'

    Report:
      oneOf:
        - $ref: '#/components/schemas/ChangeOfSupiPeiAssociationReport'
        - $ref: '#/components/schemas/RoamingStatusReport'

    ChangeOfSupiPeiAssociationReport:
      type: object
      required:
        - newPei
      properties:
        newPei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'

    RoamingStatusReport:
      type: object
      required:
        - roaming
        - newServingPlmn
      properties:
        roaming:
          type:
            boolean
        newServingPlmn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'

# SIMPLE TYPES:

    ReferenceId:
      type: integer

    MaxNumOfReports:
      type: integer


# ENUMS:

    EventType:
      anyOf:
        - type: string
          enum:
          - LOSS_OF_CONNECTIVITY
          - UE_REACHABILITY_FOR_DATA
          - UE_REACHABILITY_FOR_SMS
          - LOCATION_REPORTING
          - CHANGE_OF_SUPI_PEI_ASSOCIATION
          - ROAMING_STATUS
          - COMMUNICATION_FAILURE
          - AVAILABILITY_AFTER_DNN_FAILURE
        - type: string

    LocationAccuracy:
      anyOf:
        - type: string
          enum:
          - CELL_LEVEL
          - TA_LEVEL
        - type: string