Skip to content
RniAPI.yaml 139 KiB
Newer Older
swagger: '2.0'
info:
  description: The ETSI MEC ISG MEC012 Radio Network Information API described using OpenAPI
  version: 1.1.1
  title: RNI API
  license:
    name: ETSI Forge copyright notice
    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
externalDocs:
  description: ETSI GS MEC012 Radio Network Information API, V1.1.1
  url: 'http://www.etsi.org/deliver/etsi_gs/MEC/001_099/012/01.01.01_60/gs_mec012v010101p.pdf'
host: '127.0.0.1:8081'
basePath: /rni/v1
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/json
security:
  - OauthSecurity:
      - all
securityDefinitions:
  OauthSecurity:
    type: oauth2
    flow: application
    tokenUrl: 'https://oauth.exampleAPI/token'
    scopes:
      all: Single oauth2 scope for API
parameters:
  Body.CellChangeSubscriptionPost:
    name: CellChangeSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to cell change notifications based on the
         filter criteria
    required: true
    schema:
      type: object
      properties:
        CellChangeSubscription:
          $ref: '#/definitions/CellChangeSubscriptionPost'
  Body.CellChangeSubscription:
    name: CellChangeSubscription
    in: body
    description: >-
      Use to creates a subscription to cell change notifications based on the
      filter criteria
    required: true
    schema:
      type: object
      properties:
        CellChangeSubscription:
          $ref: '#/definitions/CellChangeSubscription'
  Body.S1BearerSubscriptionPost:
    name: S1BearerSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to S1 Bearer notifications based on the
      filter criteria
    required: true
    schema:
      type: object
      properties:
        S1BearerSubscription:
          $ref: '#/definitions/S1BearerSubscriptionPost'
  Body.S1BearerSubscription:
    name: S1BearerSubscription
    in: body
    description: >-
      Use to creates a subscription to S1 Bearer notifications based on the
      filter criteria
    required: true
    schema:
      type: object
      properties:
        S1BearerSubscription:
          $ref: '#/definitions/S1BearerSubscription'
  Body.MeasTaSubscriptionPost:
    name: MeasTaSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to UE Timing Advance notifications based on
      the filter criteria
    required: true
    schema:
      type: object
      properties:
        MeasTaSubscription:
          $ref: '#/definitions/MeasTaSubscriptionPost'
  Body.MeasTaSubscription:
    name: MeasTaSubscription
    in: body
    description: >-
      Use to creates a subscription to UE Timing Advance notifications based on
      the filter criteria
    required: true
    schema:
      type: object
      properties:
        MeasTaSubscription:
          $ref: '#/definitions/MeasTaSubscription'
  Body.MeasRepUeSubscriptionPost:
    name: MeasRepUeSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to UE measurement report notifications based
      on the filter criteria
    required: true
    schema:
      type: object
      properties:
        MeasRepUeSubscription:
          $ref: '#/definitions/MeasRepUeSubscriptionPost'
  Body.MeasRepUeSubscription:
    name: MeasRepUeSubscription
    in: body
    description: >-
      Use to creates a subscription to UE measurement report notifications based
      on the filter criteria
    required: true
    schema:
      type: object
      properties:
        MeasRepUeSubscription:
          $ref: '#/definitions/MeasRepUeSubscription'
  Body.RabEstSubscriptionPost:
    name: RabEstSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to RAB establishment notifications based on
      the filter criteria
    required: true
    schema:
      type: object
      properties:
        RabEstSubscription:
          $ref: '#/definitions/RabEstSubscriptionPost'
  Body.RabEstSubscription:
    name: RabEstSubscription
    in: body
    description: >-
      Use to creates a subscription to RAB establishment notifications based on
      the filter criteria
    required: true
    schema:
      type: object
      properties:
        RabEstSubscription:
          $ref: '#/definitions/RabEstSubscription'
  Body.RabModSubscriptionPost:
    name: RabEstSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to RAB Modification notifications based on
      the filter criteria
    required: true
    schema:
      type: object
      properties:
        RabModSubscription:
          $ref: '#/definitions/RabModSubscriptionPost'
  Body.RabModSubscription:
    name: RabEstSubscription
    in: body
    description: >-
      Use to creates a subscription to RAB Modification notifications based on
      the filter criteria
    required: true
    schema:
      type: object
      properties:
        RabModSubscription:
          $ref: '#/definitions/RabModSubscription'
  Body.RabRelSubscriptionPost:
    name: RabRelSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to RAB Release notifications based on the
      filter criteria
    required: true
    schema:
      type: object
      properties:
        RabRelSubscription:
          $ref: '#/definitions/RabRelSubscriptionPost'
  Body.RabRelSubscription:
    name: RabRelSubscription
    in: body
    description: >-
      Use to creates a subscription to RAB Release notifications based on the
      filter criteria
    required: true
    schema:
      type: object
      properties:
        RabRelSubscription:
          $ref: '#/definitions/RabRelSubscription'
  Body.CaReConfSubscriptionPost:
    name: CaReConfSubscriptionPost
    in: body
    description: >-
      Use to creates a subscription to Carrier Aggregation Reconfiguration
      notifications based on the filter criteria
    required: true
    schema:
      type: object
      properties:
        CaReConfSubscription:
          $ref: '#/definitions/CaReConfSubscriptionPost'
  Body.CaReConfSubscription:
    name: CaReConfSubscription
    in: body
    description: >-
      Use to creates a subscription to Carrier Aggregation Reconfiguration
      notifications based on the filter criteria
    required: true
    schema:
      type: object
      properties:
        CaReConfSubscription:
          $ref: '#/definitions/CaReConfSubscription'
  Path.subscrId:
    name: subscriptionId
    in: path
    description: >-
      Subscription Id, specifically the "self" returned in the subscription
      request
    required: true
    type: string
    format: uri
  Query.AppInsId:
    name: app_ins_id
    in: query
    description: Application instance identifier
    required: false
    type: string
  Query.AppInsIdArr:
    name: app_ins_id
    in: query
    description: Application instance identifier
    required: true
    type: array
    items:
      type: string
  Query.UeIpv4Address:
    name: ue_ipv4_address
    in: query
    description: Comma separated list of IE IPv4 addresses as defined for the type for AssociateId
    required: false
    type: array
    items:
      type: string
  Query.UeIpv6Address:
    name: ue_ipv6_address
    in: query
    description: Comma separated list of IE IPv6 addresses as defined for the type for AssociateId
    required: false
    type: array
    items:
      type: string
  Query.NatedIpAddress:
    name: nated_ip_address
    in: query
    description: Comma separated list of IE NATed IP addresses as defined for the type for AssociateId
    required: false
    type: array
    items:
      type: string
  Query.GtpTeId:
    name: gtp_teid
    in: query
    description: Comma separated list of GTP TEID addresses as defined for the type for AssociateId
    required: false
    type: array
    items:
      type: string
  Query.CellId:
    name: cell_id
    in: query
    description: >-
      E-UTRAN Cell Identity as a bit string (size (28)), as defined in ETSI TS
      136 413
    required: false
    type: array
    items:
      type: string
  Query.ErabGbrDl:
    name: erab_gbr_dl
    in: query
    description: Guaranteed downlink E-RAB Bit Rate as defined in ETSI TS 123 401
    required: false
    type: integer
    format: uint32
  Query.ErabGbrUl:
    name: erab_gbr_ul
    in: query
    description: Guaranteed uplink E-RAB Bit Rate as defined in ETSI TS 123 401
    required: false
    type: integer
    format: uint32
  Query.ErabId:
    name: erab_id
    in: query
    description: E-RAB identifier
    required: false
    type: integer
    format: uint32
  Query.ErabIdArr:
    name: erab_id
    in: query
    description: E-RAB identifier
    required: false
    type: array
    items:
      type: integer
      format: uint32
  Query.ErabMbrDl:
    name: erab_mbr_dl
    in: query
    description: Maximum downlink E-RAB Bit Rate as defined in ETSI TS 123 401
    required: false
    type: integer
    format: uint32
  Query.ErabMbrUl:
    name: erab_mbr_ul
    in: query
    description: Maximum uplink E-RAB Bit Rate as defined in ETSI TS 123 401
    required: false
    type: integer
    format: uint32
  Query.Qci:
    name: qci
    in: query
    description: QoS Class Identifier as defined in ETSI TS 123 401
    required: false
    type: integer
    format: uint32
  Query.TempUeId:
    name: temp_ue_id
    in: query
    description: >-
      The temporary identifier allocated for the specific UE as defined in ETSI
      TS 136 413
    required: false
    type: array
    items:
      type: string
paths:
    get:
      description: >-
        Gets information on existing E-RABs that are associated with a specific
        mobile edge application instance
      operationId: rab_infoGET
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Query.AppInsId'
        - $ref: '#/parameters/Query.CellId'
        - $ref: '#/parameters/Query.UeIpv4Address'
        - $ref: '#/parameters/Query.UeIpv6Address'
        - $ref: '#/parameters/Query.NatedIpAddress'
        - $ref: '#/parameters/Query.GtpTeId'
        - $ref: '#/parameters/Query.ErabId'
        - $ref: '#/parameters/Query.Qci'
        - $ref: '#/parameters/Query.ErabMbrDl'
        - $ref: '#/parameters/Query.ErabMbrUl'
        - $ref: '#/parameters/Query.ErabGbrDl'
        - $ref: '#/parameters/Query.ErabGbrUl'
      responses:
        '200':
          description: Successful response to rab_info request
          schema:
            type: object
            properties:
              RabInfo:
                $ref: '#/definitions/RabInfo'
          examples:
            application/json:
              RabInfo:
                timeStamp:
                  seconds: 1577836800
                  nanoSeconds: 0
                appInId: '01'
                requestId: '01'
                cellUserInfo:
                  ecgi:
                    plmn:
                      mcc: '001'
                      mnc: '01'
                    cellId: '0x800000A'
                  ueInfo:
                    associateId: null
                    type: '1'
                    value: 192.0.2.0
                    erabInfo:
                      erabId: 10
                    erabQosParameters:
                      qci: 7
                      qosInformation:
                        erabMbrDl: 10
                        erabMbrUl: 10
                        erabGbrDl: 10
                        erabGbrUl: 10
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      x-swagger-router-controller: Default
    get:
      description: >-
        Gets the information on Mobile Network(s) that are associated with a
        specific mobile edge application instance
      operationId: plmn_infoGET
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Query.AppInsIdArr'
      responses:
        '200':
          description: Successful response to rab_info request
          schema:
            type: object
            properties:
              PlmnInfo:
                $ref: '#/definitions/PlmnInfo'
          examples:
            application/json:
              PlmnInfo:
                timeStamp:
                  seconds: 1577836800
                  nanoSeconds: 0
                appInId: '01'
                ecgi:
                  plmn:
                    mcc: '001'
                    mnc: '01'
                  cellId: '0x800000A'
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      x-swagger-router-controller: Default
  /queries/s1_bearer_info:
    get:
      description: >-
        Gets information on existing E-RABs that are associated with a specific
        mobile edge application instance
      operationId: s1_bearer_infoGET
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Query.TempUeId'
        - $ref: '#/parameters/Query.UeIpv4Address'
        - $ref: '#/parameters/Query.UeIpv6Address'
        - $ref: '#/parameters/Query.NatedIpAddress'
        - $ref: '#/parameters/Query.GtpTeId'
        - $ref: '#/parameters/Query.CellId'
        - $ref: '#/parameters/Query.ErabIdArr'
      responses:
        '200':
          description: Successful response to s1_bearer_info request
          schema:
            type: object
            properties:
              S1BearerInfo:
                $ref: '#/definitions/S1BearerInfo'
          examples:
            application/json:
              S1BearerInfo:
                timeStamp:
                  seconds: 1577836800
                  nanoSeconds: 0
                s1UeInfo:
                  - tempUeId:
                      mmec: '0'
                      mtmsi: '1234'
                    associateId:
                      - type: '1'
                        value: 192.0.2.0
                      - type: '3'
                        value: 198.51.100.0
                    ecgi:
                      plmn:
                        mcc: '001'
                        mnc: '01'
                      cellid: '0x800000A'
                    s1BearerInfoDetailed:
                      - erabId: 1
                        s1EnbInfo:
                          ipAddress: 192.0.2.0
                          tunnelId: '1111'
                        sGwInfo:
                          ipAddress: 192.0.2.1
                          tunnelId: '2222'
                  - tempUeId:
                      mmec: '0'
                      mtmsi: '1234'
                    associateId:
                      type: '1'
                      value: 192.0.2.0
                    ecgi:
                      plmn:
                        mcc: '001'
                        mnc: '01'
                      cellid: '0x800000B'
                    s1BearerInfoDetailed:
                      - erabId: 2
                        s1EnbInfo:
                          ipAddress: 192.0.2.0
                          tunnelId: '3333'
                        sGwInfo:
                          ipAddress: 192.0.2.1
                          tunnelId: '4444'
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      x-swagger-router-controller: Default
  /subscriptions/:
    get:
      description: >-
        The GET method can be used to request information about the
        subscriptions for this requestor
      operationId: SubscriptionLinkList_subscriptionsGET
      produces:
        - application/json
        - application/problem+json
      responses:
        '200':
          description: >-
            Response body contains the list of links to requestors
            subscriptions.
          schema:
            type: object
            properties:
              SubscriptionLinkList:
                $ref: '#/definitions/SubscriptionLinkList'
          examples:
            application/json:
              SubscriptionLinkList:
                _links:
                  self: 'http://meAppServer.example.com/rni/v1/subscriptions'
                    - href: >-
                        http://meAppClient.example.com/rni/v1/notifications/cell_change/77777
                      subscriptionType: CELL_CHANGE
                    - href: >-
                        http://meAppClient.example.com/rni/v1/notifications/MeasTa/77777
                      subscriptionType: MEAS_TIMING_ADVANCE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      x-swagger-router-controller: Default
  /subscriptions/cell_change:
    get:
      description: >-
        The GET method can be used to request information about the
        cell_change subscriptions for this requestor
      operationId: SubscriptionLinkList_subscriptions_cc_GET
      produces:
        - application/json
        - application/problem+json
      responses:
        '200':
          description: >-
            Response body contains the list of links to requestors
            cell_change subscriptions.
          schema:
            type: object
            properties:
              SubscriptionLinkList:
          examples:
            application/json:
              SubscriptionLinkList:
                _links:
                  self: 'http://meAppServer.example.com/rni/v1/subscriptions/cell_change'
                    - href: >-
                        http://meAppClient.example.com/rni/v1/notifications/cell_change/77777
                      subscriptionType: CELL_CHANGE
                    - href: >-
                        http://meAppClient.example.com/rni/v1/notifications/cell_change/77778
                      subscriptionType: CELL_CHANGE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      x-swagger-router-controller: Default
    post:
      description: >-
        Creates a subscription to cell change notifications from Radio Network
        Information Service
      operationId: CellChange_subscriptionsPOST
      produces:
        - application/json
        - application/problem+json
      parameters:
        - $ref: '#/parameters/Body.CellChangeSubscriptionPost'
      responses:
        '201':
          description: Successful subscription to response to UE cell change notifications
          schema:
            type: object
            properties:
              CellChangeSubscription:
                $ref: '#/definitions/CellChangeSubscription'
          examples:
            application/json:
              CellChangeSubscription:
                callbackReference: >-
                  http://meAppClient.example.com/rni/v1/notifications/cell_change/77777
                _links:
                  self: >-
                    http://meAppServer.example.com/rni/v1/subscriptions/cell_change/sub123
                filterCriteria:
                  associateId:
                    type: '1'
                    value: 192.0.2.0
                  plmn:
                    mnc: '01'
                    mcc: '001'
                  appInsId: '01'
                  trigger: 6
                  cellId: '0x800000B'
                expiryDeadline:
                  seconds: 1577836800
                  nanoSeconds: 0
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '415':
          description: Unsupported Media Type
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '422':
          description: Unprocessable Entity
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
          examples: 
            'application/problem+json':
              ProblemDetails:
                type: 'https://meAppServer.example.com/rni/v1/probs/too-many-targets'
                title: Too many targets
                status: '422'
                detail: The target area for the request is considered too large
                instance: '/meAppClient.example.com/77777/msgs/abc'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      x-swagger-router-controller: Default
  '/subscriptions/cell_change/{subscriptionId}':
    get:
      description: Get cell change subscription information
      operationId: CellChange_subscriptionsGET
      produces:
        - application/json
        - application/problem+json
      parameters:
        - $ref: '#/parameters/Path.subscrId'
      responses:
        '200':
          description: Subscription information regarding cell change notifications
          schema:
            type: object
            properties:
              CellChangeSubscription:
                $ref: '#/definitions/CellChangeSubscription'
          examples:
            application/json:
              CellChangeSubscription:
                callbackReference: >-
                  http://meAppClient.example.com/rni/v1/notifications/cell_change/77777
                _links:
                  self: >-
                    http://meAppServer.example.com/rni/v1/subscriptions/cell_change/sub123
                filterCriteria:
                  appInsId: '01'
                  associateId:
                    type: '1'
                    value: 192.0.2.0
                  plmn:
                    mnc: '01'
                    mcc: '001'
                  cellId: '0x800000B'
                  hoStatus: 3
                expiryDeadline:
                  seconds: 1577836800
                  nanoSeconds: 0
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '401':
          description: Unauthorized
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '406':
          description: Not Acceptable
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '429':
          description: Too Many Requests
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
    put:
      description: >-
        Updates a subscription to cell change notifications from Radio Network
        Information Service
      operationId: CellChange_subscriptionsPUT
      produces:
        - application/json
        - application/problem+json