Commit accf2c5c authored by Jesus de Gregorio's avatar Jesus de Gregorio
Browse files

March'19

parent 33d08bea
Loading
Loading
Loading
Loading
Loading
+2362 −0

File added.

Preview size limit exceeded, changes collapsed.

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

TS29503_Nudm_PP.yaml

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

info:
  version: '1.0.0'
  title: 'Nudm_PP'
  description: 'Nudm Parameter Provision 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-pp/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501.

security:
  - oAuth2ClientCredentials:
    - nudm-pp
  - {}

paths:
  /{gpsi}/pp-data:
    patch:
      summary: provision parameters
      operationId: Update
      tags:
        - Subscription Data Update
      parameters:
        - name: gpsi
          in: path
          description: Identifier of the UE
          required: true
          schema:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/PpData'
        required: true
      responses:
        '204':
          description: Expected response to a valid request
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error


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


  schemas:

# COMPLEX TYPES:

    PpData:
      type: object
      properties:
        communicationCharacteristics:
          $ref: '#/components/schemas/CommunicationCharacteristics'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'

    CommunicationCharacteristics:
      type: object
      properties:
        ppSubsRegTimer:
          $ref: '#/components/schemas/PpSubsRegTimer'
        ppActiveTime:
          $ref: '#/components/schemas/PpActiveTime'
        ppDlPacketCount:
          $ref: '#/components/schemas/PpDlPacketCount'

    PpSubsRegTimer:
      type: object
      required:
        - subsRegTimer
        - afInstanceId
        - referenceId
      properties:
        subsRegTimer:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        afInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        referenceId:
          $ref: '#/components/schemas/ReferenceId'
      nullable: true

    PpActiveTime:
      type: object
      required:
        - activeTime
        - afInstanceId
        - referenceId
      properties:
        activeTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        afInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        referenceId:
          $ref: '#/components/schemas/ReferenceId'
      nullable: true


# SIMPLE TYPES:

    ReferenceId:
      type: integer

    PpDlPacketCount:
      type: integer
      nullable: true


# ENUMS:

TS29503_Nudm_SDM.yaml

0 → 100644
+1661 −0

File added.

Preview size limit exceeded, changes collapsed.

TS29503_Nudm_UEAU.yaml

0 → 100644
+299 −0
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  version: '1.0.0'
  title: 'NudmUEAU'
  description: 'UDM UE Authentication 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-ueau/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501.

security:
  - oAuth2ClientCredentials:
    - nudm-ueau
  - {}

paths:
  /{supiOrSuci}/security-information/generate-auth-data:
    post:
      summary: Generate authentication data for the UE
      operationId: GenerateAuthData
      tags:
        - Generate Auth Data
      parameters:
        - name: supiOrSuci
          in: path
          description: SUPI or SUCI of the user
          required: true
          schema:
            $ref: '#/components/schemas/SupiOrSuci'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticationInfoRequest'
        required: true
      responses:
        '200':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationInfoResult'
        '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

  /{supi}/auth-events:
    post:
      summary: Create a new confirmation event
      operationId: ConfirmAuth
      tags:
        - Confirm Auth
      parameters:
        - name: supi
          in: path
          description: SUPI of the user
          required: true
          schema:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthEvent'
        required: true
      responses:
        '201':
          description: Expected response to a valid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthEvent'
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/nudm-ueau/v1/{supi}/auth-events/{authEventId}'
              required: true
              schema:
                type: string
        '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

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


  schemas:

# COMPLEX TYPES:

    AuthenticationInfoRequest:
      type: object
      required:
        - servingNetworkName
        - ausfInstanceId
      properties:
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        servingNetworkName:
          $ref: '#/components/schemas/ServingNetworkName'
        resynchronizationInfo:
          $ref: '#/components/schemas/ResynchronizationInfo'
        ausfInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'

    AuthenticationInfoResult:
      type: object
      required:
        - authType
      properties:
        authType:
          $ref: '#/components/schemas/AuthType'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        authenticationVector:
          $ref: '#/components/schemas/AuthenticationVector'
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'

    AuthenticationVector:
      oneOf:
        - $ref: '#/components/schemas/AvEapAkaPrime'
        - $ref: '#/components/schemas/Av5GHeAka'
      discriminator:
        propertyName: avType
        mapping: 
          5G_HE_AKA: '#/components/schemas/Av5GHeAka'
          EAP_AKA_PRIME: '#/components/schemas/AvEapAkaPrime'

    AvEapAkaPrime:
      type: object
      required:
        - avType
        - rand
        - xres
        - autn
        - ckPrime
        - ikPrime
      properties:
        avType:
          $ref: '#/components/schemas/AvType'
        rand:
          $ref: '#/components/schemas/Rand'
        xres:
          $ref: '#/components/schemas/Xres'
        autn:
          $ref: '#/components/schemas/Autn'
        ckPrime:
          $ref: '#/components/schemas/CkPrime'
        ikPrime:
          $ref: '#/components/schemas/IkPrime'

    Av5GHeAka:
      type: object
      required:
        - avType
        - rand
        - xresStar
        - autn
        - kausf
      properties:
        avType:
          $ref: '#/components/schemas/AvType'
        rand:
          $ref: '#/components/schemas/Rand'
        xresStar:
          $ref: '#/components/schemas/XresStar'
        autn:
          $ref: '#/components/schemas/Autn'
        kausf:
          $ref: '#/components/schemas/Kausf'

    ResynchronizationInfo:
      type: object
      required:
        - rand
        - auts
      properties:
        rand:
          $ref: '#/components/schemas/Rand'
        auts:
          $ref: '#/components/schemas/Auts'

    AuthEvent:
      type: object
      required:
        - nfInstanceId
        - success
        - timeStamp
        - authType
        - servingNetworkName
      properties:
        nfInstanceId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        success:
          $ref: '#/components/schemas/Success'
        timeStamp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        authType:
          $ref: '#/components/schemas/AuthType'
        servingNetworkName:
          $ref: '#/components/schemas/ServingNetworkName'

# SIMPLE TYPES:

    Autn:
      type: string
      pattern: '^[A-Fa-f0-9]{32}$'

    Auts:
      type: string
      pattern: '^[A-Fa-f0-9]{28}$'

    CkPrime:
      type: string
      pattern: '^[A-Fa-f0-9]{32}$'

    IkPrime:
      type: string
      pattern: '^[A-Fa-f0-9]{32}$'

    Kausf:
      type: string
      pattern: '^[A-Fa-f0-9]{64}$'

    Rand:
      type: string
      pattern: '^[A-Fa-f0-9]{32}$'

    Xres:
      type: string
      pattern: '^[A-Fa-f0-9]{8,32}$'

    XresStar:
      type: string
      pattern: '^[A-Fa-f0-9]{32}$'

    SupiOrSuci:
      type: string
      pattern: '^(imsi-[0-9]{5,15}|nai-.+| suci-(0-[0-9]{3}-[0-9]{2,3}|[1-7]-.+)-[0-9]{1,4}-(0-0-.+|[a-fA-F1-9]-([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])-[a-fA-F0-9]+)|.+)$'

    ServingNetworkName:
      type: string
      pattern: '^5G:mnc[0-9]{3}[.]mcc[0-9]{3}[.]3gppnetwork[.]org$'

    Success:
      type: boolean

# ENUMS:

    AuthType:
      anyOf:
        - type: string
          enum:
          - 5G_AKA
          - EAP_AKA_PRIME
          - EAP_TLS
        - type: string

    AvType:
      anyOf:
        - type: string
          enum:
          - 5G_HE_AKA
          - EAP_AKA_PRIME
        - type: string
Loading