3GPP TS 28.623 Generic Nrm API

OAS 3.0.1 definition of the Generic NRM. An OpenAPI 3.0.1 data-model-only document (no paths; it defines the schemas/Network Resource Model consumed by the Provisioning and Performance management services), API version 19.7.0, published verbatim by 3GPP in 3GPP TS 28.623 as part of the Management Services (SA5 OAM) suite and mirrored in the public 3GPP Forge GitLab repository.

OpenAPI Specification

3gpp-ts28623-genericnrm.yml Raw ↑
openapi: 3.0.1
info:
  title: Generic NRM
  version: 19.7.0
  description: OAS 3.0.1 definition of the Generic NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS,
    CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
externalDocs:
  description: 3GPP TS 28.623; Generic NRM
  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.623/
paths: {}
components:
  schemas:
    VnfParameters:
      description: -> This <<dataType>> represents the parameter set of the VNF instance(s) corresponding
        to an NE.
      type: object
      properties:
        vnfInstanceId:
          type: string
        vnfdId:
          type: string
        flavourId:
          type: string
        autoScalable:
          type: boolean
          default: false
    PeeParameters:
      description: -> This <<dataType>> represents the parameter list for the control and monitoring of
        power, energy and environmental parameters.
      type: object
      properties:
        siteIdentification:
          type: string
        siteLatitude:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Latitude
        siteLongitude:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Longitude
        siteAltitude:
          type: number
          format: float
        siteDescription:
          type: string
        equipmentType:
          type: string
        environmentType:
          type: string
        powerInterface:
          type: string
    TransportProtocol:
      anyOf:
      - type: string
        enum:
        - TCP
      - type: string
    SupportedPerfMetricGroup:
      type: object
      properties:
        performanceMetrics:
          type: array
          uniqueItems: true
          items:
            type: string
          readOnly: true
          minItems: 1
        granularityPeriods:
          type: array
          uniqueItems: true
          items:
            type: integer
            minimum: 1
          readOnly: true
        reportingMethods:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
            - FILE_BASED_LOC_SET_BY_PRODUCER
            - FILE_BASED_LOC_SET_BY_CONSUMER
            - STREAM_BASED
            readOnly: true
        reportingPeriods:
          type: array
          uniqueItems: true
          items:
            type: integer
            minimum: 1
          readOnly: true
    ReportingCtrl:
      oneOf:
      - type: object
        properties:
          fileReportingPeriod:
            type: integer
      - type: object
        properties:
          fileReportingPeriod:
            type: integer
          notificationRecipientAddress:
            $ref: TS28623_ComDefs.yaml#/components/schemas/Uri
      - type: object
        properties:
          fileReportingPeriod:
            type: integer
          fileLocation:
            $ref: TS28623_ComDefs.yaml#/components/schemas/Uri
      - type: object
        properties:
          streamTarget:
            $ref: TS28623_ComDefs.yaml#/components/schemas/Uri
    ProcessMonitor:
      description: This data type is the "ProcessMonitor" data type without specialisations.
      type: object
      properties:
        id:
          type: string
          readOnly: true
        status:
          type: string
          enum:
          - NOT_STARTED
          - RUNNING
          - FINSHED
          - FAILED
          - PARTIALLY_FAILED
          - CANCELLING
          - CANCELLED
          readOnly: true
        progressPercentage:
          type: integer
          minimum: 0
          maximum: 100
          readOnly: true
        progressStateInfo:
          type: string
          readOnly: true
        resultStateInfo:
          type: string
          readOnly: true
        startTime:
          $ref: TS28623_ComDefs.yaml#/components/schemas/DateTimeRo
        endTime:
          $ref: TS28623_ComDefs.yaml#/components/schemas/DateTimeRo
        timer:
          type: integer
    AreaScope:
      allOf:
      - type: array
        items:
          $ref: TS28541_NrNrm.yaml#/components/schemas/PlmnInfoList
        maxItems: 16384
      - oneOf:
        - type: array
          items:
            $ref: '#/components/schemas/EutraCellId'
          minItems: 1
          maxItems: 32
        - type: object
          properties:
            nrCellId:
              type: array
              items:
                $ref: '#/components/schemas/NrCellId'
              minItems: 1
              maxItems: 32
            nPNIdentityList:
              type: array
              items:
                $ref: '#/components/schemas/NpnId-Type'
        - type: object
          properties:
            tacList:
              type: array
              items:
                $ref: '#/components/schemas/Tac'
              minItems: 1
              maxItems: 8
            cAGIdList:
              type: array
              items:
                $ref: TS28623_ComDefs.yaml#/components/schemas/CagId
              maxItems: 256
        - type: object
          properties:
            taList:
              type: array
              items:
                $ref: '#/components/schemas/Tai'
              minItems: 1
              maxItems: 8
            nPNIdentityList:
              type: array
              items:
                $ref: '#/components/schemas/NpnId-Type'
        - type: object
          properties:
            nTNGeoAreaList:
              type: array
              items:
                $ref: TS28623_ComDefs.yaml#/components/schemas/GeoArea
              minItems: 1
              maxItems: 8
        - type: array
          items:
            $ref: '#/components/schemas/NpnId-Type'
          minItems: 1
    Tai:
      type: object
      properties:
        mcc:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Mcc
        mnc:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Mnc
        tac:
          $ref: '#/components/schemas/Tac'
    Tac:
      type: string
      pattern: (^[A-Fa-f0-9]{4}$)|(^[A-Fa-f0-9]{6}$)
    EutraCellId:
      type: string
      pattern: ^[A-Fa-f0-9]{7}$
    NrCellId:
      type: string
      pattern: ^[A-Fa-f0-9]{9}$
    IpAddr:
      oneOf:
      - $ref: TS28623_ComDefs.yaml#/components/schemas/Ipv4Addr
      - $ref: TS28623_ComDefs.yaml#/components/schemas/Ipv6Addr
    SchedulingTime:
      oneOf:
      - $ref: TS28623_ComDefs.yaml#/components/schemas/TimeWindow
      - type: object
        properties:
          timeIntervals:
            type: array
            uniqueItems: true
            items:
              $ref: TS28623_ComDefs.yaml#/components/schemas/TimeInterval
      - type: object
        properties:
          timeIntervals:
            type: array
            uniqueItems: true
            items:
              $ref: TS28623_ComDefs.yaml#/components/schemas/TimeInterval
          daysOfWeek:
            type: array
            uniqueItems: true
            items:
              type: string
              enum:
              - MONDAY
              - TUESDAY
              - WEDNESDAY
              - THURSDAY
              - FRIDAY
              - SATURDAY
              - SUNDAY
              minItems: 1
              maxItems: 7
      - type: object
        properties:
          timeIntervals:
            type: array
            uniqueItems: true
            items:
              $ref: TS28623_ComDefs.yaml#/components/schemas/TimeInterval
          daysOfMonth:
            type: array
            uniqueItems: true
            items:
              type: integer
              minimum: 0
              maximum: 31
    NpnId-Type:
      type: object
      properties:
        plmnId:
          $ref: TS28623_ComDefs.yaml#/components/schemas/PlmnId
        cAGIdList:
          type: array
          uniqueItems: true
          items:
            $ref: TS28623_ComDefs.yaml#/components/schemas/CagId
          maxItems: 256
        nIDList:
          type: array
          uniqueItems: true
          items:
            $ref: TS28623_ComDefs.yaml#/components/schemas/Nid
          maxItems: 16
      oneOf:
      - required:
        - plmnId
        - cAGIdList
      - required:
        - plmnId
        - nIDList
    Top-Attr:
      type: object
      properties:
        id:
          type: string
          nullable: true
        objectClass:
          type: string
        objectInstance:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Dn
        VsDataContainer:
          $ref: '#/components/schemas/VsDataContainer-Multiple'
      required:
      - id
    Top:
      type: object
      properties:
        id:
          type: string
          nullable: true
        objectClass:
          type: string
        objectInstance:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Dn
        VsDataContainer:
          $ref: '#/components/schemas/VsDataContainer-Multiple'
      required:
      - id
    SubNetwork-Attr:
      type: object
      properties:
        dnPrefix:
          type: string
        userLabel:
          type: string
        userDefinedNetworkType:
          type: string
        setOfMcc:
          type: array
          uniqueItems: true
          items:
            $ref: TS28623_ComDefs.yaml#/components/schemas/Mcc
          readOnly: true
          minItems: 1
        priorityLabel:
          type: integer
          readOnly: true
        supportedPerfMetricGroups:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
        supportedTraceMetrics:
          type: array
          uniqueItems: true
          items:
            type: string
    ManagedElement-Attr:
      type: object
      properties:
        dnPrefix:
          type: string
        managedElementTypeList:
          type: array
          uniqueItems: true
          items:
            type: string
        userLabel:
          type: string
        locationName:
          type: string
        managedBy:
          $ref: TS28623_ComDefs.yaml#/components/schemas/DnList
        vendorName:
          type: string
          readOnly: true
        userDefinedState:
          type: string
        swVersion:
          type: string
          readOnly: true
        priorityLabel:
          type: integer
        supportedPerfMetricGroups:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
        supportedTraceMetrics:
          type: array
          uniqueItems: true
          items:
            type: string
          readOnly: true
    SubNetwork-ncO:
      type: object
      properties:
        SubNetwork:
          $ref: '#/components/schemas/SubNetwork-Multiple'
        ManagedElement:
          $ref: '#/components/schemas/ManagedElement-Multiple'
        ManagementNode:
          $ref: '#/components/schemas/ManagementNode-Multiple'
        MnsAgent:
          $ref: '#/components/schemas/MnsAgent-Multiple'
        MeContext:
          $ref: '#/components/schemas/MeContext-Multiple'
        AlarmList:
          $ref: TS28111_FaultNrm.yaml#/components/schemas/AlarmList-Single
        Scheduler:
          $ref: '#/components/schemas/Scheduler-Multiple'
        ConditionMonitor:
          $ref: '#/components/schemas/ConditionMonitor-Multiple'
        SupportedNotifications:
          $ref: '#/components/schemas/SupportedNotifications-Single'
    ManagedElement-ncO:
      type: object
      properties:
        MnsAgent:
          $ref: '#/components/schemas/MnsAgent-Multiple'
        AlarmList:
          $ref: TS28111_FaultNrm.yaml#/components/schemas/AlarmList-Single
        Scheduler:
          $ref: '#/components/schemas/Scheduler-Multiple'
        ConditionMonitor:
          $ref: '#/components/schemas/ConditionMonitor-Multiple'
        SupportedNotifications:
          $ref: '#/components/schemas/SupportedNotifications-Single'
    ManagedFunction-Attr:
      type: object
      properties:
        userLabel:
          type: string
        vnfParametersList:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/VnfParameters'
        peeParametersList:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/PeeParameters'
        priorityLabel:
          type: integer
        supportedPerfMetricGroups:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
        supportedTraceMetrics:
          type: array
          uniqueItems: true
          items:
            type: string
    EP_RP-Attr:
      type: object
      properties:
        userLabel:
          type: string
        farEndEntity:
          type: string
          readOnly: true
        supportedPerfMetricGroups:
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
    ManagedFunction-ncO:
      type: object
      properties:
        PerfMetricJob:
          $ref: TS28623_PmControlNrm.yaml#/components/schemas/PerfMetricJob-Multiple
        ThresholdMonitor:
          $ref: TS28623_ThresholdMonitorNrm.yaml#/components/schemas/ThresholdMonitor-Multiple
        TraceJob:
          $ref: TS28623_TraceControlNrm.yaml#/components/schemas/TraceJob-Multiple
    VsDataContainer-Single:
      type: object
      properties:
        id:
          type: string
        attributes:
          type: object
          properties:
            vsDataType:
              type: string
              readOnly: true
            vsDataFormatVersion:
              type: string
              readOnly: true
            vsData:
              nullable: true
        VsDataContainer:
          $ref: '#/components/schemas/VsDataContainer-Multiple'
    ManagementNode-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - type: object
        properties:
          attributes:
            type: object
            properties:
              userLabel:
                type: string
              managedElements:
                $ref: TS28623_ComDefs.yaml#/components/schemas/DnList
              vendorName:
                type: string
                readOnly: true
              userDefinedState:
                type: string
              locationName:
                type: string
                readOnly: true
              swVersion:
                type: string
                readOnly: true
          MnsAgent:
            $ref: '#/components/schemas/MnsAgent-Multiple'
    MnsAgent-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - type: object
        properties:
          attributes:
            type: object
            properties:
              systemDN:
                $ref: TS28623_ComDefs.yaml#/components/schemas/DnRo
    MeContext-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - type: object
        properties:
          attributes:
            type: object
            properties:
              dnPrefix:
                type: string
                readOnly: true
    Scheduler-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - type: object
        properties:
          attributes:
            type: object
            properties:
              schedulingTimes:
                type: array
                uniqueItems: true
                items:
                  $ref: '#/components/schemas/SchedulingTime'
                minItems: 1
              schedulerStatus:
                type: boolean
                readOnly: true
    ConditionMonitor-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - type: object
        properties:
          attributes:
            type: object
            properties:
              condition:
                type: string
              conditionStatus:
                type: boolean
                readOnly: true
    SupportedNotifications-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - type: object
        properties:
          attributes:
            type: object
            properties:
              notificationTypes:
                type: array
                uniqueItems: true
                items:
                  $ref: TS28623_ComDefs.yaml#/components/schemas/NotificationType
              notificationProtocols:
                type: array
                uniqueItems: true
                items:
                  type: string
                  enum:
                  - HTTP
                  - HTTP_VES_ENCAPS
                  minItems: 1
                readOnly: true
    SubNetwork-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - $ref: '#/components/schemas/SubNetwork-Attr'
      - $ref: '#/components/schemas/SubNetwork-ncO'
      - $ref: '#/components/schemas/SubNetwork-Multiple'
      - $ref: '#/components/schemas/ManagedElement-Multiple'
      - $ref: TS28623_FileManagementNrm.yaml#/components/schemas/SubNetwork-ncO-FileManagementNrm
      - $ref: TS28623_PmControlNrm.yaml#/components/schemas/SubNetwork-ncO-PmControlNrm
      - $ref: TS28623_SubscriptionControlNrm.yaml#/components/schemas/SubNetwork-ncO-SubscriptionControlNrm
      - $ref: TS28623_ThresholdMonitorNrm.yaml#/components/schemas/SubNetwork-ncO-ThresholdMonitorNrm
      - $ref: TS28623_TraceControlNrm.yaml#/components/schemas/SubNetwork-ncO-TraceControlNrm
      - $ref: TS28623_QoEMeasurementCollectionNrm.yaml#/components/schemas/SubNetwork-ncO-QoEMeasurementCollectionNrm
      - $ref: TS28623_ManagementDataCollectionNrm.yaml#/components/schemas/SubNetwork-ncO-ManagementDataCollectionNrm
      - $ref: TS28623_MnSRegistryNrm.yaml#/components/schemas/SubNetwork-ncO-MnSRegistryNrm
      - $ref: TS28104_MdaNrm.yaml#/components/schemas/SubNetwork-ncO-MdaNrm
      - $ref: TS28105_AiMlNrm.yaml#/components/schemas/SubNetwork-ncO-AiMlNrm
      - $ref: TS28312_IntentNrm.yaml#/components/schemas/SubNetwork-ncO-IntentNrm
      - $ref: TS28317_RanScNrm.yaml#/components/schemas/SubNetwork-ncO-RanScNrm
      - $ref: TS28536_CoslaNrm.yaml#/components/schemas/SubNetwork-ncO-CoslaNrm
      - $ref: TS28538_EdgeNrm.yaml#/components/schemas/SubNetwork-ncO-EdgeNrm
      - $ref: TS28541_SliceNrm.yaml#/components/schemas/SubNetwork-ncO-SliceNrm
      - $ref: TS28541_NrNrm.yaml#/components/schemas/SubNetwork-ncO-NrNrm
      - $ref: TS28541_5GcNrm.yaml#/components/schemas/SubNetwork-ncO-5GcNrm
      - $ref: TS28318_DsoNrm.yaml#/components/schemas/SubNetwork-ncO-DsoNrm
      - $ref: TS28310_EnergyInformationNrm.yaml#/components/schemas/SubNetwork-ncO-EnergyInformationNrm
      - $ref: TS28623_ExternalDataMgmtNrm.yaml#/components/schemas/SubNetwork-ncO-ExternalDataMgmtNrm
      - $ref: TS28561_NdtNrm.yaml#/components/schemas/SubNetwork-ncO-NDTNrm
      - $ref: TS28567_CclNrm.yaml#/components/schemas/SubNetwork-ncO-CCLNrm
    ManagedElement-Single:
      allOf:
      - $ref: '#/components/schemas/Top'
      - $ref: '#/components/schemas/ManagedElement-Attr'
      - $ref: '#/components/schemas/ManagedElement-ncO'
      - $ref: TS28623_FileManagementNrm.yaml#/components/schemas/ManagedElement-ncO-FileManagementNrm
      - $ref: TS28623_PmControlNrm.yaml#/components/schemas/ManagedElement-PmControlNrm
      - $ref: TS28623_SubscriptionControlNrm.yaml#/components/schemas/ManagedElement-ncO-SubscriptionControlNrm
      - $ref: TS28623_ThresholdMonitorNrm.yaml#/components/schemas/ManagedElement-ncO-ThresholdMonitorNrm
      - $ref: TS28623_TraceControlNrm.yaml#/components/schemas/SubNetwork-ncO-TraceControlNrm
      - $ref: TS28623_QoEMeasurementCollectionNrm.yaml#/components/schemas/ManagedElement-ncO-QoEMeasurementCollectionNrm
      - $ref: TS28104_MdaNrm.yaml#/components/schemas/ManagedElement-ncO-MdaNrm
      - $ref: TS28105_AiMlNrm.yaml#/components/schemas/ManagedElement-ncO-AiMlNrm
      - $ref: TS28536_CoslaNrm.yaml#/components/schemas/ManagedElement-ncO-CoslaNrm
      - $ref: TS28541_NrNrm.yaml#/components/schemas/ManagedElement-ncO-NrNrm
      - $ref: TS28541_5GcNrm.yaml#/components/schemas/ManagedElement-ncO-5GcNrm
    NrmRoot:
      oneOf:
      - type: object
        properties:
          SubNetwork:
            $ref: '#/components/schemas/SubNetwork-Multiple'
      - type: object
        properties:
          ManagedElement:
            $ref: '#/components/schemas/ManagedElement-Multiple'
    VsDataContainer-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/VsDataContainer-Single'
    ManagementNode-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/ManagementNode-Single'
    MnsAgent-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/MnsAgent-Single'
    MeContext-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/MeContext-Single'
    Scheduler-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/Scheduler-Single'
    ConditionMonitor-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/ConditionMonitor-Single'
    SubNetwork-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/SubNetwork-Single'
    ManagedElement-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/ManagedElement-Single'
    resources-genericNrm:
      oneOf:
      - $ref: '#/components/schemas/NrmRoot'
      - $ref: '#/components/schemas/VsDataContainer-Single'
      - $ref: '#/components/schemas/ManagementNode-Single'
      - $ref: '#/components/schemas/MnsAgent-Single'
      - $ref: '#/components/schemas/MeContext-Single'
      - $ref: '#/components/schemas/Scheduler-Single'
      - $ref: '#/components/schemas/ConditionMonitor-Single'
      - $ref: '#/components/schemas/SupportedNotifications-Single'
      - $ref: '#/components/schemas/SubNetwork-Single'
      - $ref: '#/components/schemas/ManagedElement-Single'
servers:
- url: https://forge.3gpp.org/rep/api/v4
  description: Base URL reconciled from apis.yml