openapi: 3.0.0
info:
  title: E2 Manager Service
  description: E2 Manager Service APIs
  version: 5.0.1
servers:
  - url: 'http://{apiRoot}/v1'
    variables:
      apiRoot:
        default: 'localhost:3800'
paths:
  '/nodeb/{ranName}':
    get:
      tags:
        - nodeb
      summary: Get RAN by name
      operationId: getNb
      parameters:
        - name: ranName
          in: path
          required: true
          description: Name of RAN to return
          schema:
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNodebResponse'
        '400':
          description: The specified RAN name is invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: A RAN with the specified name was not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  '/nodeb/{ranName}/update':
    put:
      summary: Update GNB
      tags:
        - nodeb
      operationId: UpdateGnb
      parameters:
        - name: ranName
          in: path
          required: true
          description: Name of GNB RAN to update
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGnbRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateGnbResponse'
        '400':
          description: Invalid input
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /nodeb/shutdown:
    put:
      tags:
        - nodeb
      summary: Close all connections to the RANs
      responses:
        '200':
          description: 'Operation succeeded internally, outbound calls failed'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedButtonPartialSuccessResponseModel'
        '204':
          description: Successful operation
        '500':
          description: Internal Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /nodeb/ids:
    get:
      tags:
        - nodeb
      summary: Get RANs identities list
      operationId: getNodebIdList
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NodebIdentity'
        '500':
          description: Internal Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /health:
    get:
      tags:
        - Health Check
      summary: E2 Manager Service Health Check
      responses:
        '200':
          description: OK
  /e2t/list:
    get:
      tags:
        - e2t
      summary: Gets a list of all E2T Instances address and their associated RANs
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/E2tIdentity'
        '500':
          description: Internal Error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    UpdateGnbRequest:
      type: object
      required:
        - servedNrCells
      properties:
        servedNrCells: 
          $ref: "#/components/schemas/ServedNrCells"
      additionalProperties: false
    UpdateGnbResponse:
      properties:
        connectionStatus:
          oneOf:
            - type: string
            - type: integer
        failureType:
          oneOf:
            - type: string
            - type: integer
        globalNbId:
          properties:
            nbId:
              type: string
            plmnId:
              type: string
          additionalProperties: false
          type: object
        gnb:
          $ref: '#/components/schemas/Gnb'
        ip:
          type: string
        nodeType:
          oneOf:
            - type: string
            - type: integer
        port:
          type: integer
        ranName:
          type: string
        setupFailure:
          $ref: '#/components/schemas/SetupFailure'
      additionalProperties: false
      type: object
    NodebIdentity:
      properties:
        globalNbId:
          properties:
            nbId:
              type: string
            plmnId:
              type: string
          type: object
        inventoryName:
          type: string
      type: object
    GetNodebResponse:
      properties:
        connectionStatus:
          oneOf:
            - type: string
            - type: integer
        enb:
          $ref: '#/components/schemas/Enb'
        failureType:
          oneOf:
            - type: string
            - type: integer
        globalNbId:
          properties:
            nbId:
              type: string
            plmnId:
              type: string
          type: object
        gnb:
          $ref: '#/components/schemas/Gnb'
        ip:
          type: string
        nodeType:
          oneOf:
            - type: string
            - type: integer
        port:
          type: integer
        ranName:
          type: string
        setupFailure:
          $ref: '#/components/schemas/SetupFailure'
      additionalProperties: false
      type: object
    ErrorResponse:
      type: object
      required:
        - errorCode
        - errorMessage
      properties:
        errorCode:
          type: string
          description: >-
            401 - corrupted json, 402 - validation error, 403 - RAN in wrong
            state, 404 - resource not found, 500 - RNIB error, 501 - internal
            problem, 502 - RMR error, 503 - Routing Manager Unavailable
        errorMessage:
          type: string
          description: Human readable text
    RedButtonPartialSuccessResponseModel:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: Partial success reason
    E2tIdentity:
      type: object
      required:
        - e2tAddress
        - ranNames
      properties:
        e2tAddress:
          type: string
        ranNames:
          items:
            type: string
          type: array
    RanFunction:
      properties:
        ranFunctionId:
          type: integer
        ranFunctionDefinition:
          properties:
            e2smGnbNrtRanFunctionDefinition:
              properties:
                ranFunctionName:
                  properties:
                    ranFunctionShortName:
                      type: string
                    ranFunctionE2smOid:
                      type: string
                    ranFunctionDescription:
                      type: string
                    ranFunctionInstance:
                      type: integer
                  type: object
                ricEventTriggerStyles:
                  items:
                    properties:
                      ricEventTriggerStyleType:
                        type: integer
                      ricEventTriggerStyleName:
                        type: string
                      ricEventTriggerFormatType:
                        type: integer
                    type: object
                  type: array
                ricReportStyles:
                  items:
                    properties:
                      ricReportStyleType:
                        type: integer
                      ricReportStyleName:
                        type: string
                      ricReportActionFormatType:
                        type: integer
                      ricReportRanParameterDefs:
                        items:
                          $ref: '#/components/schemas/RanParameterDef'
                        type: array
                      ricIndicationHeaderFormatType:
                        type: integer
                      ricIndicationMessageFormatType:
                        type: integer
                    type: object
                  type: array
                ricInsertStyles:
                  items:
                    properties:
                      ricInsertStyleType:
                        type: integer
                      ricInsertStyleName:
                        type: string
                      ricInsertActionFormatType:
                        type: integer
                      ricInsertRanParameterDefs:
                        items:
                          $ref: '#/components/schemas/RanParameterDef'
                        type: array
                      ricIndicationHeaderFormatType:
                        type: integer
                      ricIndicationMessageFormatType:
                        type: integer
                      ricCallProcessIdFormatType:
                        type: integer
                    type: object
                  type: array
                ricControlStyles:
                  items:
                    properties:
                      ricControlStyleType:
                        type: integer
                      ricControlStyleName:
                        type: string
                      ricControlHeaderFormatType:
                        type: integer
                      ricControlMessageFormatType:
                        type: integer
                      ricCallProcessIdFormatType:
                        type: integer
                    type: object
                  type: array
                ricPolicyStyles:
                  items:
                    properties:
                      ricPolicyStyleType:
                        type: integer
                      ricPolicyStyleName:
                        type: string
                      ricPolicyActionFormatType:
                        type: integer
                      ricPolicyRanParameterDefs:
                        items:
                          $ref: '#/components/schemas/RanParameterDef'
                        type: array
                    type: object
                  type: array
              type: object
          type: object
        ranFunctionRevision:
          type: integer
      type: object
    RanParameterDef:
      properties:
        ranParameterId:
          type: integer
        ranParameterName:
          type: string
        ranParameterType:
          oneOf:
            - type: string
            - type: integer
      type: object
    Enb:
      properties:
        enbType:
          oneOf:
            - type: string
            - type: integer
        guGroupIds:
          items:
            type: string
          type: array
        servedCells:
          items:
            properties:
              bandwidthReducedSi:
                oneOf:
                  - type: string
                  - type: integer
              broadcastPlmns:
                items:
                  type: string
                type: array
              cellId:
                type: string
              choiceEutraMode:
                properties:
                  fdd:
                    properties:
                      dlTransmissionBandwidth:
                        oneOf:
                          - type: string
                          - type: integer
                      dlearFcn:
                        type: integer
                      ulTransmissionBandwidth:
                        oneOf:
                          - type: string
                          - type: integer
                      ulearFcn:
                        type: integer
                    additionalProperties: false
                    type: object
                  tdd:
                    properties:
                      additionalSpecialSubframeExtensionInfo:
                        properties:
                          additionalSpecialSubframePatternsExtension:
                            oneOf:
                              - type: string
                              - type: integer
                          cyclicPrefixDl:
                            oneOf:
                              - type: string
                              - type: integer
                          cyclicPrefixUl:
                            oneOf:
                              - type: string
                              - type: integer
                        additionalProperties: false
                        type: object
                      additionalSpecialSubframeInfo:
                        properties:
                          additionalSpecialSubframePatterns:
                            oneOf:
                              - type: string
                              - type: integer
                          cyclicPrefixDl:
                            oneOf:
                              - type: string
                              - type: integer
                          cyclicPrefixUl:
                            oneOf:
                              - type: string
                              - type: integer
                        additionalProperties: false
                        type: object
                      earFcn:
                        type: integer
                      specialSubframeInfo:
                        properties:
                          cyclicPrefixDl:
                            oneOf:
                              - type: string
                              - type: integer
                          cyclicPrefixUl:
                            oneOf:
                              - type: string
                              - type: integer
                          specialSubframePatterns:
                            oneOf:
                              - type: string
                              - type: integer
                        additionalProperties: false
                        type: object
                      subframeAssignment:
                        oneOf:
                          - type: string
                          - type: integer
                      transmissionBandwidth:
                        oneOf:
                          - type: string
                          - type: integer
                    additionalProperties: false
                    type: object
                additionalProperties: false
                type: object
              csgId:
                type: string
              eutraMode:
                oneOf:
                  - type: string
                  - type: integer
              freqBandIndicatorPriority:
                oneOf:
                  - type: string
                  - type: integer
              mbmsServiceAreaIdentities:
                items:
                  type: string
                type: array
              mbsfnSubframeInfos:
                items:
                  properties:
                    radioframeAllocationOffset:
                      type: integer
                    radioframeAllocationPeriod:
                      oneOf:
                        - type: string
                        - type: integer
                    subframeAllocation:
                      type: string
                    subframeAllocationType:
                      oneOf:
                        - type: string
                        - type: integer
                  additionalProperties: false
                  type: object
                type: array
              multibandInfos:
                items:
                  type: integer
                type: array
              neighbourInfos:
                items:
                  properties:
                    earFcn:
                      type: integer
                    ecgi:
                      type: string
                    pci:
                      type: integer
                    tac:
                      type: string
                  additionalProperties: false
                  type: object
                type: array
              numberOfAntennaPorts:
                oneOf:
                  - type: string
                  - type: integer
              pci:
                type: integer
              prachConfiguration:
                properties:
                  highSpeedFlag:
                    type: boolean
                  prachConfigurationIndex:
                    type: integer
                  prachFrequencyOffset:
                    type: integer
                  rootSequenceIndex:
                    type: integer
                  zeroCorrelationZoneConfiguration:
                    type: integer
                type: object
              tac:
                type: string
            type: object
          type: array
      type: object
    Gnb:
      properties:
        servedNrCells:
          $ref: "#/components/schemas/ServedNrCells"
        ranFunctions:
          items:
            $ref: '#/components/schemas/RanFunction'
          type: array
      type: object
    ServedNrCells:
      items:
        required:
          - servedNrCellInformation
        properties:
          nrNeighbourInfos:
            items:
              required:
                - choiceNrMode
                - nrCgi
                - nrMode
                - nrPci
              properties:
                choiceNrMode:
                  properties:
                    fdd:
                      properties:
                        dlarFcnFreqInfo:
                          properties:
                            frequencyBands:
                              items:
                                properties:
                                  nrFrequencyBand:
                                    type: integer
                                  supportedSulBands:
                                    items:
                                      type: integer
                                    type: array
                                additionalProperties: false
                                type: object
                              type: array
                            nrArFcn:
                              oneOf:
                                - type: integer
                            sulInformation:
                              properties:
                                sulArFcn:
                                  oneOf:
                                    - type: integer
                                sulTransmissionBandwidth:
                                  properties:
                                    ncnrb:
                                      oneOf:
                                        - type: string
                                        - type: integer
                                    nrscs:
                                      oneOf:
                                        - type: string
                                        - type: integer
                                  additionalProperties: false
                                  type: object
                              additionalProperties: false
                              type: object
                          additionalProperties: false
                          type: object
                        ularFcnFreqInfo:
                          properties:
                            frequencyBands:
                              items:
                                properties:
                                  nrFrequencyBand:
                                    type: integer
                                  supportedSulBands:
                                    items:
                                      type: integer
                                    type: array
                                additionalProperties: false
                                type: object
                              type: array
                            nrArFcn:
                              oneOf:
                                - type: integer
                            sulInformation:
                              properties:
                                sulArFcn:
                                  oneOf:
                                    - type: integer
                                sulTransmissionBandwidth:
                                  properties:
                                    ncnrb:
                                      oneOf:
                                        - type: string
                                        - type: integer
                                    nrscs:
                                      oneOf:
                                        - type: string
                                        - type: integer
                                  additionalProperties: false
                                  type: object
                              additionalProperties: false
                              type: object
                          additionalProperties: false
                          type: object
                      additionalProperties: false
                      type: object
                    tdd:
                      properties:
                        arFcnNrFreqInfo:
                          properties:
                            frequencyBands:
                              items:
                                properties:
                                  nrFrequencyBand:
                                    type: integer
                                  supportedSulBands:
                                    items:
                                      type: integer
                                    type: array
                                additionalProperties: false
                                type: object
                              type: array
                            nrArFcn:
                              oneOf:
                                - type: integer
                            sulInformation:
                              properties:
                                sulArFcn:
                                  oneOf:
                                    - type: integer
                                sulTransmissionBandwidth:
                                  properties:
                                    ncnrb:
                                      oneOf:
                                        - type: string
                                        - type: integer
                                    nrscs:
                                      oneOf:
                                        - type: string
                                        - type: integer
                                  additionalProperties: false
                                  type: object
                              additionalProperties: false
                              type: object
                          additionalProperties: false
                          type: object
                      additionalProperties: false
                      type: object
                  additionalProperties: false
                  type: object
                configuredStac:
                  type: string
                nrCgi:
                  type: string
                nrMode:
                  oneOf:
                    - type: string
                    - type: integer
                nrPci:
                  type: integer
                stac5g:
                  type: string
              additionalProperties: false
              type: object
            type: array
          servedNrCellInformation:
            required:
              - cellId
              - choiceNrMode
              - nrMode
              - nrPci
              - servedPlmns
            properties:
              cellId:
                type: string
              choiceNrMode:
                properties:
                  fdd:
                    properties:
                      dlFreqInfo:
                        properties:
                          frequencyBands:
                            items:
                              properties:
                                nrFrequencyBand:
                                  type: integer
                                supportedSulBands:
                                  items:
                                    type: integer
                                  type: array
                              additionalProperties: false
                              type: object
                            type: array
                          nrArFcn:
                            oneOf:
                              - type: integer
                          sulInformation:
                            properties:
                              sulArFcn:
                                oneOf:
                                  - type: integer
                              sulTransmissionBandwidth:
                                properties:
                                  ncnrb:
                                    oneOf:
                                      - type: string
                                      - type: integer
                                  nrscs:
                                    oneOf:
                                      - type: string
                                      - type: integer
                                additionalProperties: false
                                type: object
                            additionalProperties: false
                            type: object
                        additionalProperties: false
                        type: object
                      dlTransmissionBandwidth:
                        properties:
                          ncnrb:
                            oneOf:
                              - type: string
                              - type: integer
                          nrscs:
                            oneOf:
                              - type: string
                              - type: integer
                        additionalProperties: false
                        type: object
                      ulFreqInfo:
                        properties:
                          frequencyBands:
                            items:
                              properties:
                                nrFrequencyBand:
                                  type: integer
                                supportedSulBands:
                                  items:
                                    type: integer
                                  type: array
                              additionalProperties: false
                              type: object
                            type: array
                          nrArFcn:
                            oneOf:
                              - type: integer
                          sulInformation:
                            properties:
                              sulArFcn:
                                oneOf:
                                  - type: integer
                              sulTransmissionBandwidth:
                                properties:
                                  ncnrb:
                                    oneOf:
                                      - type: string
                                      - type: integer
                                  nrscs:
                                    oneOf:
                                      - type: string
                                      - type: integer
                                additionalProperties: false
                                type: object
                            additionalProperties: false
                            type: object
                        additionalProperties: false
                        type: object
                      ulTransmissionBandwidth:
                        properties:
                          ncnrb:
                            oneOf:
                              - type: string
                              - type: integer
                          nrscs:
                            oneOf:
                              - type: string
                              - type: integer
                        additionalProperties: false
                        type: object
                    additionalProperties: false
                    type: object
                  tdd:
                    properties:
                      nrFreqInfo:
                        properties:
                          frequencyBands:
                            items:
                              properties:
                                nrFrequencyBand:
                                  type: integer
                                supportedSulBands:
                                  items:
                                    type: integer
                                  type: array
                              additionalProperties: false
                              type: object
                            type: array
                          nrArFcn:
                            oneOf:
                              - type: integer
                          sulInformation:
                            properties:
                              sulArFcn:
                                oneOf:
                                  - type: integer
                              sulTransmissionBandwidth:
                                properties:
                                  ncnrb:
                                    oneOf:
                                      - type: string
                                      - type: integer
                                  nrscs:
                                    oneOf:
                                      - type: string
                                      - type: integer
                                additionalProperties: false
                                type: object
                            additionalProperties: false
                            type: object
                        additionalProperties: false
                        type: object
                      transmissionBandwidth:
                        properties:
                          ncnrb:
                            oneOf:
                              - type: string
                              - type: integer
                          nrscs:
                            oneOf:
                              - type: string
                              - type: integer
                        additionalProperties: false
                        type: object
                    additionalProperties: false
                    type: object
                additionalProperties: false
                type: object
              configuredStac:
                type: string
              nrMode:
                oneOf:
                  - type: string
                  - type: integer
              nrPci:
                type: integer
              servedPlmns:
                items:
                  type: string
                type: array
              stac5g:
                type: string
            additionalProperties: false
            type: object
        additionalProperties: false
        type: object
      type: array
    SetupFailure:
      properties:
        criticalityDiagnostics:
          properties:
            informationElementCriticalityDiagnostics:
              items:
                properties:
                  ieCriticality:
                    oneOf:
                      - type: string
                      - type: integer
                  ieId:
                    type: integer
                  typeOfError:
                    oneOf:
                      - type: string
                      - type: integer
                additionalProperties: false
                type: object
              type: array
            procedureCode:
              type: integer
            procedureCriticality:
              oneOf:
                - type: string
                - type: integer
            triggeringMessage:
              oneOf:
                - type: string
                - type: integer
          additionalProperties: false
          type: object
        miscellaneousCause:
          oneOf:
            - type: string
            - type: integer
        networkLayerCause:
          oneOf:
            - type: string
            - type: integer
        protocolCause:
          oneOf:
            - type: string
            - type: integer
        timeToWait:
          oneOf:
            - type: string
            - type: integer
        transportLayerCause:
          oneOf:
            - type: string
            - type: integer
      additionalProperties: false
      type: object
