openapi: 3.0.1
info:
  title: Generic NRM
  version: 18.4.0
  description: >-
    OAS 3.0.1 definition of the Generic NRM
    © 2023, 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:

#-------- Definition of types-----------------------------------------------------

    RegistrationState:
      type: string
      enum:
        - REGISTERED
        - DEREGISTERED
    VnfParameter:
      type: object
      properties:
        vnfInstanceId:
          type: string
        vnfdId:
          type: string
        flavourId:
          type: string
        autoScalable:
          type: boolean
    PeeParameter:
      type: object
      properties:
        siteIdentification:
          type: string
        siteDescription:
          type: string
        siteLatitude:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Latitude'
        siteLongitude:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Longitude'
        siteAltitude:
          type: number
          format: float
        equipmentType:
          type: string
        environmentType:
          type: string
        powerInterface:
          type: string
    ThresholdInfo:
      type: object
      properties:
        thresholdDirection:
          type: string
          enum:
            - UP
            - DOWN
            - UP_AND_DOWN
        thresholdValue:
          oneOf:
            - type: integer
            - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Float'
        hysteresis:
          oneOf:
            - type: integer
              minimum: 0
            - type: number
              format: float
              minimum: 0
    Operation:
      type: object
      properties:
        name:
          type: string
        allowedNFTypes:
          $ref: '#/components/schemas/NFType'
        operationSemantics:
          $ref: '#/components/schemas/OperationSemantics'
    NFType:
      type: string
      description: ' NF name defined in TS 23.501 or TS 29.510'
      enum:
        - NRF
        - UDM
        - AMF
        - SMF
        - AUSF
        - NEF
        - PCF
        - SMSF
        - NSSF
        - UDR
        - LMF
        - GMLC
        - 5G_EIR
        - SEPP
        - UPF
        - N3IWF
        - AF
        - UDSF
        - DN
        - BSF
        - CHF
        - NWDAF
        - PCSCF
        - CBCF
        - HSS
        - UCMF
        - SOR_AF
        - SPAF
        - MME
        - SCSAS
        - SCEF
        - SCP
        - NSSAAF
        - ICSCF
        - SCSCF
        - DRA
        - IMS_AS
        - AANF
        - 5G_DDNMF
        - NSACF
        - MFAF
        - EASDF
        - DCCF
        - MB_SMF
        - TSCTSF
        - ADRF
        - GBA_BSF
        - CEF
        - MB_UPF
        - NSWOF
        - PKMF
        - MNPF
        - SMS_GMSC
        - SMS_IWMSC
        - MBSF
        - MBSTF
        - PANF
        - TNGF
        - W_AGF
        - TWIF
        - TSN_AF

    OperationSemantics:
      type: string
      enum:
        - REQUEST_RESPONSE
        - SUBSCRIBE_NOTIFY
    SAP:
      type: object
      properties:
        host:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/HostAddr'
        port:
          type: integer
    NFServiceType:
      type: string
      enum:
        - Namf_Communication
        - Namf_EventExposure
        - Namf_MT
        - Namf_Location
        - Nsmf_PDUSession
        - Nsmf_EventExposure
        - Others
    TransportProtocol:
      anyOf:
        - type: string
          enum:
            - TCP
        - type: string
    SupportedPerfMetricGroup:
      type: object
      properties:
        performanceMetrics:
          type: array
          items:
            type: string
        granularityPeriods:
          type: array
          items:
            type: integer
            minimum: 1
        reportingMethods:
          type: array
          items:
            type: string
            enum:
             - FILE_BASED_LOC_SET_BY_PRODUCER
             - FILE_BASED_LOC_SET_BY_CONSUMER
             - STREAM_BASED 
        reportingPeriods:
          type: array
          items:
            type: integer
            minimum: 1
    ReportingCtrl:
      oneOf:
        - type: object
          properties:
            fileReportingPeriod:
              type: integer
        - 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'
    Scope:
      type: object
      properties:
        scopeType:
          type: string
          enum:
            - BASE_ONLY
            - BASE_ALL
            - BASE_NTH_LEVEL
            - BASE_SUBTREE
        scopeLevel:
          type: integer
    ProcessMonitor:
      description: >-
        This data type is the "ProcessMonitor" data type without specialisations.
      type: object
      properties:
        jobId:
          type: string
        status:
          type: string
          enum:
            - NOT_STARTED
            - RUNNING
            - FINSHED
            - FAILED
            - PARTIALLY_FAILED
            - CANCELLING
            - CANCELLED
        progressPercentage:
          type: integer
          minimum: 0
          maximum: 100
        progressStateInfo:
          type: string
        resultStateInfo:
          type: string
        startTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        endTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        timer:
          type: integer
    FileDownloadJobProcessMonitor:
      description: >-
        This data type is the "ProcessMonitor" data type with specialisations
        for usage in the "FileDownloadJob".
      type: object
      properties:
        jobId:
          type: string
        status:
          type: string
          enum:
            - NOT_STARTED
            - RUNNING
            - FINSHED
            - FAILED
            - CANCELLING
            - CANCELLED
        progressPercentage:
          type: integer
          minimum: 0
          maximum: 100
        progressStateInfo:
          type: string
        resultStateInfo:
          oneOf:
            - type: string
              enum:
                - NULL
                - UNKNOWN
                - NO_STORAGE
                - LOW_MEMROY
                - NO_CONNECTION_TO_REMOTE_SERVER
                - FILE_NOT_AVAILABLE
                - DNS_CANNOT_BE_RESOLVED
                - TIMER_EXPIRED
                - OTHER
            - type: string
        startTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        endTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        timer:
          type: integer
    AreaScope:
      oneOf:
      - type: array
        items:
          $ref: '#/components/schemas/EutraCellId'
      - type: array
        items:
          $ref: '#/components/schemas/NrCellId'
      - type: array
        items:
          $ref: '#/components/schemas/Tac'
      - type: array
        items:
          $ref: '#/components/schemas/Tai'
    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'
    AreaConfig:
      type: object
      properties:
        freqInfo:
          $ref: '#/components/schemas/FreqInfo'
        pciList:
          type: array
          items:
            type: integer
    FreqInfo:
      description: specifies the carrier frequency and bands used in a cell.
      type: object
      properties:
        arfcn:
          type: integer
        freqBands:
          type: array
          items: 
            type: integer
    MbsfnArea:
      type: object
      properties:
        mbsfnAreaId:
          type: integer
          minimum: 1
        earfcn:
          type: integer
          minimum: 1
    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'

    ManagementData:
      oneOf:
      - type: array
        items:
          type: string
          enum:
            - COVERAGE
            - CAPACITY
            - ENERGY_EFFICIENCY
            - MOBILITY
            - ACCESSIBILITY
      - type: array
        items:
          type: string
    NodeFilter:
      type: object
      properties:
        areaOfInterest:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/AreaOfInterest'
        networkDomain:
          type: string
          enum:
            - CN
            - RAN
        cpUpType:
          type: string
          enum:
            - CP
            - UP
        sst:
          type: integer

#-------- Definition of types used in Trace control NRM fragment------------------
                
    jobType-Type:
      type: string
      description: Specifies whether the TraceJob represents only MDT, Logged MBSFN MDT, Trace or a combined Trace and MDT job. Applicable for Trace, MDT, RCEF and RLF reporting. See 3GPP TS 32.422 clause 5.9a for additional details.
      enum:
        - IMMEDIATE_MDT_ONLY
        - LOGGED_MDT_ONLY
        - TRACE_ONLY
        - IMMEDIATE_MDT AND TRACE
        - RLF_REPORT_ONLY
        - RCEF_REPORT_ONLY
        - LOGGED_MBSFN_MDT

    listOfInterfaces-Type:
      description: The interfaces to be recorded in the Network Element. See 3GPP TS 32.422 clause 5.5 for additional details.
      type: object
      properties:
        MSCServerInterfaces:
          type: array
          items:
            type: string
            enum:
              - A
              - Iu-CS
              - Mc
              - MAP-G
              - MAP-B
              - MAP-E
              - MAP-F
              - MAP-D
              - MAP-C
              - CAP
        MGWInterfaces:
          type: array
          items:
            type: string
            enum:
              - Mc
              - Nb-UP
              - Iu-UP
        RNCInterfaces:
          type: array
          items:
            type: string
            enum:
              - Iu-CS
              - Iu-PS
              - Iur
              - Iub
              - Uu
        SGSNInterfaces:
          type: array
          items:
            type: string
            enum:
              - Gb
              - Iu-PS
              - Gn
              - MAP-Gr
              - MAP-Gd
              - MAP-Gf
              - Ge
              - Gs
              - S6d
              - S4
              - S3
              - S13
        GGSNInterfaces:
          type: array
          items:
            type: string
            enum:
              - Gn
              - Gi
              - Gmb
        S-CSCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Mw
              - Mg
              - Mr
              - Mi
        P-CSCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Gm
              - Mw
        I-CSCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Cx
              - Dx
              - Mg
              - Mw
        MRFCInterfaces:
          type: array
          items:
            type: string
            enum:
              - Mp
              - Mr
        MGCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Mg
              - Mj
              - Mn
        IBCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Ix
              - Mx
        E-CSCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Mw
              - Ml
              - Mm
              - Mi/Mg
        BGCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - Mi
              - Mj
              - Mk
        ASInterfaces:
          type: array
          items:
            type: string
            enum:
              - Dh
              - Sh
              - ISC
              - Ut
        HSSInterfaces:
          type: array
          items:
            type: string
            enum:
              - MAP-C
              - MAP-D
              - Gc
              - Gr
              - Cx
              - S6d
              - S6a
              - Sh
              - N70
              - N71
              - NU1
        EIRInterfaces:
          type: array
          items:
            type: string
            enum:
              - MAP-F
              - S13
              - MAP-Gf
        BM-SCInterfaces:
          type: array
          items:
            type: string
            enum:
              - Gmb
        MMEInterfaces:
          type: array
          items:
            type: string
            enum:
              - S1-MME
              - S3
              - S6a
              - S10
              - S11
              - S13
        SGWInterfaces:
          type: array
          items:
            type: string
            enum:
              - S4
              - S5
              - S8
              - S11
              - Gxc
        PDN_GWInterfaces:
          type: array
          items:
            type: string
            enum:
              - S2a
              - S2b
              - S2c
              - S5
              - S6b
              - Gx
              - S8
              - SGi
        eNBInterfaces:
          type: array
          items:
            type: string
            enum:
              - S1-MME
              - X2
        en-gNBInterfaces:
          type: array
          items:
            type: string
            enum:
              - S1-MME
              - X2
              - Uu
              - F1-C
              - E1
        AMFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N1
              - N2
              - N8
              - N11
              - N12
              - N14
              - N15
              - N20
              - N22
              - N26
        AUSFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N12
              - N13
        NEFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N29
              - N30
              - N33
        NRFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N27
        NSSFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N22
              - N31
        PCFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N5
              - N7
              - N15
        SMFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N4
              - N7
              - N10
              - N11
              - S5-C
        SMSFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N20
              - N21
        UDMInterfaces:
          type: array
          items:
            type: string
            enum:
              - N8
              - N10
              - N13
              - N21
              - NU1
        UPFInterfaces:
          type: array
          items:
            type: string
            enum:
              - N4
        ng-eNBInterfaces:
          type: array
          items:
            type: string
            enum:
              - NG-C
              - Xn-C
              - Uu
        gNB-CU-CPInterfaces:
          type: array
          items:
            type: string
            enum:
              - NG-C
              - Xn-C
              - Uu
              - F1-C
              - E1
              - X2-C
        gNB-CU-UPInterfaces:
          type: array
          items:
            type: string
            enum:
              - E1
        gNB-DUInterfaces:
          type: array
          items:
            type: string
            enum:
              - F1-C

    listOfNeTypes-Type:
      description: The Network Element types where Trace Session activation is needed. See 3GPP TS 32.422 clause 5.4 for additional details.
      type: array
      items:
        type: string
        enum:
          - MSC_SERVER
          - SGSN
          - MGW
          - GGSN
          - RNC
          - BM_SC
          - MME
          - SGW
          - PGW
          - ENB
          - EN_GNB
          - GNB_CU_CP
          - GNB_CU_UP
          - GNB_DU
          - AMF
          - PCF
          - SMF
          - UPF
          - AUSF
          - SMSF
          - HSS
          - UDM

    plmnTarget-Type:
      type: object
      description: The PLMN for which sessions shall be selected in the Trace Session in case of management based activation when several PLMNs are supported in the RAN (this means that shared cells and not shared cells are allowed for the specified PLMN. Note that the PLMN Target might differ from the PLMN specified in the Trace Reference, as that specifies the PLMN that is containing the management system requesting the Trace Session from the NE. See 3GPP TS 32.422 clause 5.9b for additional details.
      properties:
        mcc:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mcc'
        mnc:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mnc'
      required:
        - mcc
        - mnc

    traceDepth-Type:
      description: Specifies how detailed information should be recorded in the Network Element. The Trace Depth is a paremeter for Trace Session level, i.e., the Trace Depth is the same for all of the NEs to be traced in the same Trace Session. See 3GPP TS 32.422 clause 5.3 for additional details.
      type: string
      enum:
        - MINIMUM
        - MEDIUM
        - MAXIMUM
        - VENDORMINIMUM
        - VENDORMEDIUM
        - VENDORMAXIMUM

    traceReference-Type:
      type: object
      description: The Trace Reference parameter shall be globally unique, therefore the Trace Reference shall compose as follows - MCC+MNC+Trace ID, where the MCC and MNC are coming with the Trace activation request from the management system to identify one PLMN containing the management system, and Trace ID is a 3 byte Octet String. See 3GPP TS 32.422 clause 5.6 for additional details.
      properties:
        mcc:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mcc'
        mnc:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mnc'
        traceId:
          type: string
      required:
        - mcc
        - mnc
        - traceId

    traceReportingFormat-Type:
      type: string
      description: Specifies whether file-based or streaming reporting shall be used for this Trace Session. See 3GPP TS 32.422 clause 5.11 for additional details.
      enum:
        - FILE-BASED
        - STREAMING

    traceTarget-Type:
      type: object
      description: Trace target conveying both the type and value of the target ID. For additional details see 3GPP TS 32.422
      properties:
        TargetIdType:
          type: string
          enum:
            - IMSI
            - IMEI
            - IMEISV
            - PUBLIC_ID
            - UTRAN_CELL
            - E-UTRAN_CELL
            - NG-RAN_CELL
            - eNB
            - RNC
            - gNB
            - SUPI
        TargetIdValue:
          type: string
      required:
        - TargetIdType
        - TargetIdValue
    
    triggeringEvents-Type:
      type: object
      description: Specifies when to start a Trace Recording Session and which message shall be recorded first, when to stop a Trace Recording Session and which message shall be recorded last respectively. See 3GPP TS 32.422 clause 5.1 for additional detials.
      properties:
        MSC_SERVER:
          type: array
          items:
            type: string
            enum:
              - MO_MT_CALLS
              - MO_MT_SMS
              - LU_IMSIattach_IMSIdetach
              - HANDOVER
              - SS
        SGSN:
          type: array
          items:
            type: string
            enum:
              - PDPcontext
              - MO_MT_SMS
              - RAU_GPRSattach_GPRSdetach
              - MBMScontext
        MGW:
          type: array
          items:
            type: string
            enum:
              - CONTEXT
        GGSN:
          type: array
          items:
            type: string
            enum:
              - PDPcontext
              - MBMScontext
        IMS:
          type: array
          items:
            type: string
            enum:
              - SIPsession_StandaloneTransaction
        BM_SC:
          type: array
          items:
            type: string
            enum:
              - MBMSactivation
        MME:
          type: array
          items:
            type: string
            enum:
              - UEinitiatedPDNconnectivityRequest
              - ServiceRequest
              - InitialAttach_TAU_Detach
              - UEinitiatedPDNdisconnection
              - BearerActivationModificationDeletion
              - Handover
        SGW:
          type: array
          items:
            type: string
            enum:
              - PDNconnectionCreation
              - PDNconnectionTermination
              - BearerActivationModificationDeletion
        PGW:
          type: array
          items:
            type: string
            enum:
              - PDNconnectionCreation
              - PDNconnectionTermination
              - BearerActivationModificationDeletion
        AMF:
          type: array
          items:
            type: string
            enum:
              - Registration
              - ServiceRequest
              - Handover
              - UEderegistration
              - NetworkDeregistration
              - UEMobilityFromEPC
              - UEMobilityToEPC
        SMF:
          type: array
          items:
            type: string
            enum:
              - PDUsessionEstablishment
              - PDUsessionModification
              - PDUsessionRelease
              - PDUsessionUPactivationDeactivation
              - MobilityBtw3gppAndN3gppTo5GC
              - MobilityFromEpc
        PCF:
          type: array
          items:
            type: string
            enum:
              - AMpolicy
              - SMpolicy
              - Authorization
              - BDTpolicy
        UPF:
          type: array
          items:
            type: string
            enum:
              - N4Session
        AUSF:
          type: array
          items:
            type: string
            enum:
              - UEauthentication
        NEF:
          type: array
          items:
            type: string
            enum:
              - EventExposure
              - PFDmanagement
              - ParameterProvision
              - Trigger
        NRF:
          type: array
          items:
            type: string
            enum:
              - NFmanagement
              - NFdiscovery
        NSSF:
          type: array
          items:
            type: string
            enum:
              - NSSelection
              - NSSAI
        SMSF:
          type: array
          items:
            type: string
            enum:
              - SMservice
        UDM:
          type: array
          items:
            type: string
            enum:
              - UEcontext
              - SubscriberData
              - UEauthentication
              - EventExposure
    
    anonymizationOfMdtData-Type:
      description: Specifies level of MDT anonymization. For additional details see 3GPP TS 32.422 clause 5.10.12.
      type: string
      enum:
        - NO_IDENTITY
        - TAC_OF_IMEI
    
    beamLevelMeasurement-Type:
      description: Determines whether beam level measurements shall be included in case of immediate MDT M1 measurement in NR. For additional details see 3GPP TS 32.422 clause 5.10.40.
      type: boolean
    
    collectionPeriodRrmLte-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.20.
      type: string
      enum:
        - 100ms
        - 1000ms
        - 1024ms
        - 1280ms
        - 2048ms
        - 2560ms
        - 5120ms
        - 10000ms
        - 10240ms
        - 60000ms

    collectionPeriodM6Lte-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.32.
      type: string
      enum:
        - 1024ms
        - 2048ms
        - 5120ms
        - 10240ms

    collectionPeriodM7Lte-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.33.
      type: integer
      minimum: 1
      maximum: 60

    collectionPeriodRrmUmts-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.21.
      type: string
      enum:
        - 100ms
        - 250ms
        - 500ms
        - 1000ms
        - 2000ms
        - 3000ms
        - 4000ms
        - 6000ms
    
    collectionPeriodRrmNr-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.30.
      type: string
      enum:
        - 1024ms
        - 2048ms
        - 5120ms
        - 10240ms
        - 60000ms

    collectionPeriodM6Nr-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.34.
      type: string
      enum:
        - 120ms
        - 240ms
        - 480ms
        - 640ms
        - 1024ms
        - 2048ms
        - 5120ms
        - 10240ms
        - 20480ms
        - 40960ms
        - 1min
        - 6min
        - 12min
        - 30min

    collectionPeriodM7Nr-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.35.
      type: integer
      minimum: 1
      maximum: 60

    eventListForEventTriggeredMeasurement-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.28.
      type: string
      enum:
        - OUT_OF_COVERAGE
        - A2_EVENT

    eventThreshold-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.7, 5.10.7a, 5.10.13 and 5.10.14.
      type: object
      properties:
        EventThresholdRSRP:
          oneOf:
          - type: integer
            minimum: 0
            maximum: 97
          - type: integer
            minimum: 0
            maximum: 127
        EventThresholdRSRQ:      
          oneOf:
          - type: integer
            minimum: 0
            maximum: 34
          - type: integer
            minimum: 0
            maximum: 127
        EventThreshold1F:
          type: object
          properties:
            CPICH_RSCP:
              type: integer
              minimum: -120
              maximum: 25
            CPICH_EcNo:
              type: integer
              minimum: -24
              maximum: 0
            PathLoss:
              type: integer
              minimum: 30
              maximum: 165
        EventThreshold1I:
          type: integer
          minimum: -120
          maximum: 25

    listOfMeasurements-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.3 for details.
      type: object
      properties:
        UMTS:
          type: array
          items:
            type: string
            enum:
              - M1
              - M2
              - M3
              - M4
              - M5
              - M6_DL
              - M6_UL
              - M7_DL
              - M7_UL
        LTE:
          type: array
          items:
            type: string
            enum:
              - M1
              - M2
              - M3
              - M4
              - M5
              - M1_EVENT_TRIGGERED
              - M6
              - M7
              - M8
              - M9
        NR:
          type: array
          items:
            type: string
            enum:
              - M1
              - M2
              - M3
              - M4
              - M5
              - M6
              - M7
              - M1_EVENT_TRIGGERED
              - M8
              - M9

    loggingDuration-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.9.
      type: string
      enum:
        - 600s
        - 1200s
        - 2400s
        - 3600s
        - 5400s
        - 7200s
    
    loggingInterval-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.8.
      type: object
      properties:
        UMTS:
          type: array
          items:
            type: string
            enum:
              - 1.28s
              - 2.56s
              - 5.12s
              - 10.24s
              - 20.48s
              - 30.72s
              - 40.96s
              - 61.44s
        LTE:
          type: array
          items:
            type: string
            enum:
              - 1.28s
              - 2.56s
              - 5.12s
              - 10.24s
              - 20.48s
              - 30.72s
              - 40.96s
              - 61.44s
        NR:
          type: array
          items:
            type: string
            enum:
              - 0.32s
              - 0.64s
              - 1.28s
              - 2.56s
              - 5.12s
              - 10.24s
              - 20.48s
              - 30.72s
              - 40.96s
              - 61.44s
              - INFINITY

    eventThresholdL1-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.X.
      type: object
      properties:
            RSRP:
              type: integer
              minimum: 0
              maximum: 127
            RSRQ:
              type: integer
              minimum: 0
              maximum: 127
    
    hysteresisL1-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.Y.
      type: integer
      minimum: 0
      maximum: 30
    
    timeToTriggerL1-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.Z.
      type: string
      enum:
        - 0ms
        - 40ms
        - 64ms
        - 80ms
        - 100ms
        - 128ms
        - 160ms
        - 256ms
        - 320ms
        - 480ms
        - 512ms
        - 640ms
        - 1024ms
        - 1280ms
        - 2560ms
        - 5120ms

    measurementPeriodLte-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.23.
      type: string
      enum:
        - 1024ms
        - 2048ms
        - 5120ms
        - 10240ms
        - 1min

    measurementPeriodUmts-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.22.
      type: string
      enum:
        - 1000ms
        - 2000ms
        - 3000ms
        - 4000ms
        - 6000ms
        - 8000ms
        - 12000ms
        - 16000ms
        - 20000ms
        - 24000ms
        - 28000ms
        - 32000ms
        - 64000ms

    measurementQuantity-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.15.
      type: string
      enum:
        - CPICH_EcNo
        - CPICH_RSCP
        - PathLoss

    eventThresholdUphUmts-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.A.
      type: integer
      minimum: 0
      maximum: 31

    plmnList-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.24.
      type: array
      items:
        type: object
        properties:
          mcc:
            $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mcc'
          mnc:
            $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mnc'
        required:
          - mcc
          - mnc
      maxItems: 16

    positioningMethod-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.19.
      type: string
      enum:
        - GNSS
        - E-CELL_ID

    reportAmount-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.6.
      type: string
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - INFINITY
    reportAmountM1LTE-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.x.
      type: string
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - INFINITY

    reportAmountM4LTE-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.y.
      type: string
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - INFINITY

    reportAmountM5LTE-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.z.
      type: string
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - INFINITY

    reportAmountM6LTE-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.a.
      type: string
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - INFINITY

    reportAmountM7LTE-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.b.
      type: string
      enum:
        - 1
        - 2
        - 4
        - 8
        - 16
        - 32
        - 64
        - INFINITY

    reportingTrigger-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.4.
      type: array
      items:
        type: string
        enum:
          - PERIODICAL
          - A2_FOR_LTE_NR
          - 1F_FOR_UMTS
          - 1I_FOR_UMTS_MCPS_TDD
          - A2_TRIGGERED_PERIODIC_FOR_LTE_NR
          - ALL_CONFIGURED_RRM_FOR_LTE_NR
          - ALL_CONFIGURED_RRM_FOR_UMTS

    reportInterval-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.5.
      type: object
      properties:
        UMTS:
          type: array
          items:
            type: string
            enum:
              - 250ms
              - 500ms
              - 1000ms
              - 2000ms
              - 3000ms
              - 4000ms
              - 6000ms
              - 8000ms
              - 12000ms
              - 16000ms
              - 20000ms
              - 24000ms
              - 28000ms
              - 32000ms
              - 64000ms
        LTE:
          type: array
          items:
            type: string
            enum:
              - 120ms
              - 240ms
              - 480ms
              - 640ms
              - 1024ms
              - 2048ms
              - 5120ms
              - 10240ms
              - 60000ms
              - 360000ms
              - 720000ms
              - 1800000ms
              - 3600000ms
        NR:
          type: array
          items:
            type: string
            enum:
              - 120ms
              - 240ms
              - 480ms
              - 640ms
              - 1024ms
              - 2048ms
              - 5120ms
              - 10240ms
              - 20480ms
              - 40960ms
              - 60000ms
              - 360000ms
              - 720000ms
              - 1800000ms

    reportType-Type:
      description: Report type for logged NR MDT. See details in 3GPP TS 32.422 clause 5.10.27.
      type: string
      enum:
        - PERIODICAL
        - EVENT_TRIGGERED

    sensorInformation-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.29.
      type: array
      items:
        type: string
        enum:
          - BAROMETRIC_PRESSURE
          - UE_SPEED
          - UE_ORIENTATION

    traceCollectionEntityId-Type:
      description: See details in 3GPP TS 32.422 clause 5.10.11. Only TCE Id value may be sent over the air to the UE being configured for Logged MDT.
      type: integer

    excessPacketDelayThresholds-Type:
      description: Excess Packet Delay Threshold for NR MDT. See details in 3GPP TS 32.422 clause 4.1.1 and 4.1.2.
      type: array
      properties:
        fiveQIValue:
          type: integer
        excessPacketDelayThresholdValue:
          type: string
          enum:
            - 0.25ms
            - 0.5ms
            - 1ms
            - 2ms
            - 4ms
            - 5ms
            - 10ms
            - 20ms
            - 30ms
            - 40ms
            - 50ms
            - 60ms
            - 70ms
            - 80ms
            - 90ms
            - 100ms
            - 150ms
            - 300ms
            - 500ms
      minItems: 0
      maxItems: 255

    traceConfig-Type:
      description: Trace configuration parameters for NR. See details in 3GPP TS 28.622 clause 4.3.30.
      type: object
      properties:
        listOfInterfaces:
          $ref: '#/components/schemas/listOfInterfaces-Type'
        listOfNeTypes:
          $ref: '#/components/schemas/listOfNeTypes-Type'
        traceDepth:
          $ref: '#/components/schemas/traceDepth-Type'
        triggeringEvents:
          $ref: '#/components/schemas/triggeringEvents-Type'

    immediateMDTConfig-Type:
      description: Immediate MDT configuration parameters. See details in 3GPP TS 28.622 clause 4.3.30.
      type: object
      properties: 
        listOfMeasurements:
          $ref: '#/components/schemas/listOfMeasurements-Type'
        reportingTrigger:
          $ref: '#/components/schemas/reportingTrigger-Type'
        reportAmount:
          $ref: '#/components/schemas/reportAmount-Type'
        reportAmountM1LTE:
          $ref: '#/components/schemas/reportAmountM1LTE-Type'
        reportAmountM4LTE:
          $ref: '#/components/schemas/reportAmountM4LTE-Type'
        reportAmountM5LTE:
          $ref: '#/components/schemas/reportAmountM5LTE-Type'
        reportAmountM6LTE:
          $ref: '#/components/schemas/reportAmountM6LTE-Type'
        reportAmountM7LTE:
          $ref: '#/components/schemas/reportAmountM7LTE-Type'
        reportInterval:
          $ref: '#/components/schemas/reportInterval-Type'
        eventThreshold:
          $ref: '#/components/schemas/eventThreshold-Type'
        collectionPeriodRrmLte:
          $ref: '#/components/schemas/collectionPeriodRrmLte-Type'
        collectionPeriodM6Lte:
          $ref: '#/components/schemas/collectionPeriodM6Lte-Type'
        collectionPeriodM7Lte:
          $ref: '#/components/schemas/collectionPeriodM7Lte-Type'
        collectionPeriodRrmUmts:
          $ref: '#/components/schemas/collectionPeriodRrmUmts-Type'
        collectionPeriodRrmNr:
          $ref: '#/components/schemas/collectionPeriodRrmNr-Type'
        collectionPeriodM6Nr:
          $ref: '#/components/schemas/collectionPeriodM6Nr-Type'
        collectionPeriodM7Nr:
          $ref: '#/components/schemas/collectionPeriodM7Nr-Type'
        eventThresholdUphUmts:
          $ref: '#/components/schemas/eventThresholdUphUmts-Type'
        measurementPeriodUmts:
          $ref: '#/components/schemas/measurementPeriodUmts-Type'
        measurementPeriodLte:
          $ref: '#/components/schemas/measurementPeriodLte-Type'
        measurementQuantity:
          $ref: '#/components/schemas/measurementQuantity-Type'
        beamLevelMeasurement:
          $ref: '#/components/schemas/beamLevelMeasurement-Type'
        positioningMethod:
          $ref: '#/components/schemas/positioningMethod-Type'
        excessPacketDelayThresholds:
          $ref: '#/components/schemas/excessPacketDelayThresholds-Type'

    loggedMDTConfig-Type:
      description: Logged MDT configuration parameters. See details in 3GPP TS 28.622 clause 4.3.30.
      type: object
      properties:
        traceCollectionEntityId:
          $ref: '#/components/schemas/traceCollectionEntityId-Type'
        loggingDuration:
          $ref: '#/components/schemas/loggingDuration-Type'
        loggingInterval:
          $ref: '#/components/schemas/loggingInterval-Type'
        eventThresholdL1:
          $ref: '#/components/schemas/eventThresholdL1-Type'
        hysteresisL1:
          $ref: '#/components/schemas/hysteresisL1-Type'
        timeToTriggerL1:
          $ref: '#/components/schemas/timeToTriggerL1-Type'
        mbsfnAreaList:
          type: array
          items:
            $ref: '#/components/schemas/MbsfnArea'
        reportType:
          $ref: '#/components/schemas/reportType-Type'
        plmnList:
          $ref: '#/components/schemas/plmnList-Type'
        eventListForEventTriggeredMeasurement:
          $ref: '#/components/schemas/eventListForEventTriggeredMeasurement-Type'
        areaConfigurationForNeighCell:
          $ref: '#/components/schemas/AreaConfig'

    mdtConfig-Type:
      description: MDT config parameters. See details in 3GPP TS 28.622 clause 4.3.30.
      type: object
      properties:
        anonymizationOfMdtData:
          $ref: '#/components/schemas/anonymizationOfMdtData-Type'
        areaScope:
          type: array
          items:
            $ref: '#/components/schemas/AreaScope'
        sensorInformation:
          $ref: '#/components/schemas/sensorInformation-Type'
        immediateMDTConfig:
          $ref: '#/components/schemas/immediateMDTConfig-Type'
        loggedMDTConfig:
          $ref: '#/components/schemas/loggedMDTConfig-Type'

#-------- end of Definition of types used in Trace control NRM fragment ----------


#-------- Definition of abstract IOC Top -----------------------------------------

    Top-Attr:
      #  This definition will be deprecated, when all occurances of Top-Attr
      #  are replaced by 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
    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

#-------- Definition of IOCs with new name-containments defined in other TS ------

    SubNetwork-Attr:
      type: object
      properties:
        dnPrefix:
          type: string
        userLabel:
          type: string
        userDefinedNetworkType:
          type: string
        setOfMcc:
          type: array
          items:
            $ref: 'TS28623_ComDefs.yaml#/components/schemas/Mcc'
        priorityLabel:
          type: integer
        supportedPerfMetricGroups:
          type: array
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
        supportedTraceMetrics:
          type: array
          items:
            type: string
    ManagedElement-Attr:
      type: object
      properties:
        dnPrefix:
          type: string
        managedElementTypeList:
          type: array
          items:
            type: string
        userLabel:
          type: string
        locationName:
          type: string
        managedBy:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList'
        vendorName:
          type: string
        userDefinedState:
          type: string
        swVersion:
          type: string
        priorityLabel:
          type: integer
        supportedPerfMetricGroups:
          type: array
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
        supportedTraceMetrics:
          type: array
          items:
            type: string

    SubNetwork-ncO:
      type: object
      properties:
        ManagementNode:
          $ref: '#/components/schemas/ManagementNode-Multiple'
        MnsAgent:
          $ref: '#/components/schemas/MnsAgent-Multiple'
        MeContext:
          $ref: '#/components/schemas/MeContext-Multiple'
        PerfMetricJob:
          $ref: '#/components/schemas/PerfMetricJob-Multiple'
        ThresholdMonitor:
          $ref: '#/components/schemas/ThresholdMonitor-Multiple'
        TraceJob:
          $ref: '#/components/schemas/TraceJob-Multiple'
        ManagementDataCollection:
          $ref: '#/components/schemas/ManagementDataCollection-Multiple'
        NtfSubscriptionControl:
          $ref: '#/components/schemas/NtfSubscriptionControl-Multiple'
        AlarmList:
          $ref: '#/components/schemas/AlarmList-Single'
        FileDownloadJob:
          $ref: '#/components/schemas/FileDownloadJob-Multiple'
        Files:
          $ref: '#/components/schemas/Files-Multiple'
        MnsRegistry:
          $ref: '#/components/schemas/MnsRegistry-Single'
    ManagedElement-ncO:
      type: object
      properties:
        MnsAgent:
          $ref: '#/components/schemas/MnsAgent-Multiple'
        PerfMetricJob:
          $ref: '#/components/schemas/PerfMetricJob-Multiple'
        ThresholdMonitor:
          $ref: '#/components/schemas/ThresholdMonitor-Multiple'
        TraceJob:
          $ref: '#/components/schemas/TraceJob-Multiple'
        NtfSubscriptionControl:
          $ref: '#/components/schemas/NtfSubscriptionControl-Multiple'
        AlarmList:
          $ref: '#/components/schemas/AlarmList-Single'
        FileDownloadJob:
          $ref: '#/components/schemas/FileDownloadJob-Multiple'
        Files:
          $ref: '#/components/schemas/Files-Multiple'

#-------- Definition of abstract IOCs --------------------------------------------

    ManagedFunction-Attr:
      type: object
      properties:
        userLabel:
          type: string
        vnfParametersList:
          type: array
          items:
            $ref: '#/components/schemas/VnfParameter'
        peeParametersList:
          type: array
          items:
            $ref: '#/components/schemas/PeeParameter'
        priorityLabel:
          type: integer
        supportedPerfMetricGroups:
          type: array
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'
        supportedTraceMetrics:
          type: array
          items:
            type: string
    EP_RP-Attr:
      type: object
      properties:
        userLabel:
          type: string
        farEndEntity:
          type: string
        supportedPerfMetricGroups:
          type: array
          items:
            $ref: '#/components/schemas/SupportedPerfMetricGroup'

    TraceJob-Attr:
      type: object
      description: abstract class used as a container of all TraceJob attributes
      properties:
        jobType:
          $ref: '#/components/schemas/jobType-Type'
        plmnTarget:
          $ref: '#/components/schemas/plmnTarget-Type'
        traceReportingConsumerUri:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri'
        traceCollectionEntityIpAddress:
          $ref: '#/components/schemas/IpAddr'
        traceReference:
          $ref: '#/components/schemas/traceReference-Type'
        jobId:
          type: string
        traceReportingFormat:
          $ref: '#/components/schemas/traceReportingFormat-Type'
        traceTarget:
          $ref: '#/components/schemas/traceTarget-Type'
        traceConfig:
          $ref: '#/components/schemas/traceConfig-Type'
        mdtConfig:
          $ref: '#/components/schemas/mdtConfig-Type'

    ManagedFunction-ncO:
      type: object
      properties:
        PerfMetricJob:
          $ref: '#/components/schemas/PerfMetricJob-Multiple'
        ThresholdMonitor:
          $ref: '#/components/schemas/ThresholdMonitor-Multiple'
        ManagedNFService:
          $ref: '#/components/schemas/ManagedNFService-Multiple'
        TraceJob:
          $ref: '#/components/schemas/TraceJob-Multiple'

#-------- Definition of concrete IOCs --------------------------------------------

    VsDataContainer-Single:
      type: object
      properties:
        id:
          type: string
        attributes:
          type: object
          properties:
            vsDataType:
              type: string
            vsDataFormatVersion:
              type: string
            vsData:
              nullable: true
        VsDataContainer:
          $ref: '#/components/schemas/VsDataContainer-Multiple'
    ManagedNFService-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                userLabel:
                  type: string
                nFServiceType:
                  $ref: '#/components/schemas/NFServiceType'
                sAP:
                  $ref: '#/components/schemas/SAP'
                operations:
                  type: array
                  items:
                    $ref: '#/components/schemas/Operation'
                administrativeState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState'
                operationalState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/OperationalState'
                usageState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/UsageState'
                registrationState:
                  $ref: '#/components/schemas/RegistrationState'
    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
                userDefinedState:
                  type: string
                locationName:
                  type: string
                swVersion:
                  type: string
            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/Dn'
    MeContext-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                dnPrefix:
                  type: string
    PerfMetricJob-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                administrativeState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState'
                operationalState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/OperationalState'
                jobId:
                  type: string
                performanceMetrics:
                  type: array
                  items:
                    type: string
                granularityPeriod:
                  type: integer
                  minimum: 1
                objectInstances:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList'
                rootObjectInstances:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList'
                reportingCtrl:
                  $ref: '#/components/schemas/ReportingCtrl'
            Files:
              $ref: '#/components/schemas/Files-Multiple'
    ThresholdMonitor-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                administrativeState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState'
                operationalState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/OperationalState'
                performanceMetrics:
                  type: array
                  items:
                    type: string
                thresholdInfoList:
                  type: array
                  items:
                    $ref: '#/components/schemas/ThresholdInfo'
                monitorGranularityPeriod:
                  type: integer
                  minimum: 1
                objectInstances:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList'
                rootObjectInstances:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList'
    NtfSubscriptionControl-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                notificationRecipientAddress:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri'
                notificationTypes:
                  type: array
                  items:
                    $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationType'
                scope:
                  $ref: '#/components/schemas/Scope'
                notificationFilter:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/Filter'                
            HeartbeatControl:
              $ref: '#/components/schemas/HeartbeatControl-Single'
    HeartbeatControl-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                heartbeatNtfPeriod:
                  type: integer
                  minimum: 0
                triggerHeartbeatNtf:
                  type: boolean
    TraceJob-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              $ref: '#/components/schemas/TraceJob-Attr'
            Files:
              $ref: '#/components/schemas/Files-Multiple'
    ManagementDataCollection-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                managementData:
                  $ref: '#/components/schemas/ManagementData'
                targetNodeFilter:
                  $ref: '#/components/schemas/NodeFilter'
                collectionTimeWindow:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow'
                reportingCtrl:
                  $ref: '#/components/schemas/ReportingCtrl'
                dataScope:
                  type: string
                  enum:
                    - SNSSAI
                    - 5QI
    AlarmList-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                administrativeState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState'
                operationalState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/OperationalState'
                numOfAlarmRecords:
                  type: integer
                lastModification:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
                alarmRecords:
                  description: >-
                     This resource represents a map of alarm records.
                     The alarmIds are used as keys in the map.
                  type: object
                  additionalProperties:
                    $ref: 'TS28532_FaultMnS.yaml#/components/schemas/AlarmRecord'
    FileDownloadJob-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                fileLocation:
                  type: string
                notificationRecipientAddress:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri'
                cancelJob:
                  type: string
                  enum:
                    - TRUE
                    - FALSE
                jobMonitor:
                  $ref: '#/components/schemas/FileDownloadJobProcessMonitor'
    Files-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                numberOfFiles:
                  type: integer
                jobRef:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
                jobId:
                  type: string
                File:
                  $ref: '#/components/schemas/File-Multiple'
    File-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                fileLocation:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri'
                fileCompression:
                  type: string
                fileSize:
                  type: integer
                fileDataType:
                  type: string
                  enum:
                    - PERFORMANCE
                    - TRACE
                    - ANALYTICS
                    - PROPRIETARY
                fileFormat:
                  type: string
                fileReadyTime:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
                fileExpirationTime:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
                fileContent:
                  type: string
                jobRef:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
                jobId:
                  type: string
    MnsRegistry-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            MnsInfo:
              $ref: '#/components/schemas/MnsInfo-Multiple'

    MnsInfo-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
             mnsLabel:
               type: string
             mnsType:
               type: string
               enum:
                 - ProvMnS
                 - FaultSupervisionMnS
                 - StreamingDataReportingMnS
                 - FileDataReportingMnS
             mnsVersion:
               type: string
             mnsAddress:
               description: Resource URI as defined in the relevant Technical Specification
               $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri'
             mnsScope:
               description: >-
                 List of the managed object instances that can be accessed using the MnS.
                 If a complete SubNetwork can be accessed using the MnS, this attribute may 
                 contain the DN of the SubNetwork instead of the DNs of the individual managed 
                 entities within the SubNetwork.
               type: array
               items:
                 $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'

#-------- Definition of YAML arrays for name-contained IOCs ----------------------

    VsDataContainer-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/VsDataContainer-Single'
    ManagedNFService-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/ManagedNFService-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'
    PerfMetricJob-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/PerfMetricJob-Single'
    ThresholdMonitor-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/ThresholdMonitor-Single'
    TraceJob-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/TraceJob-Single'
    ManagementDataCollection-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/ManagementDataCollection-Single'
    NtfSubscriptionControl-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/NtfSubscriptionControl-Single'
    FileDownloadJob-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/FileDownloadJob-Single'
    Files-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/Files-Single'
    File-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/File-Single'
    MnsInfo-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/MnsInfo-Single'

#-------- Definitions in TS 28.623 for TS 28.532 ---------------------------------

    resources-genericNrm:
      oneOf:

       - $ref: '#/components/schemas/VsDataContainer-Single'

       - $ref: '#/components/schemas/ManagementNode-Single'
       - $ref: '#/components/schemas/MnsAgent-Single'
       - $ref: '#/components/schemas/MeContext-Single'

       - $ref: '#/components/schemas/ManagedNFService-Single'

       - $ref: '#/components/schemas/PerfMetricJob-Single'
       - $ref: '#/components/schemas/ThresholdMonitor-Single'
       - $ref: '#/components/schemas/TraceJob-Single'
       - $ref: '#/components/schemas/ManagementDataCollection-Single'
       
       - $ref: '#/components/schemas/NtfSubscriptionControl-Single'
       - $ref: '#/components/schemas/HeartbeatControl-Single'

       - $ref: '#/components/schemas/AlarmList-Single'

       - $ref: '#/components/schemas/FileDownloadJob-Single'
       - $ref: '#/components/schemas/Files-Single'
       - $ref: '#/components/schemas/File-Single'
       
       - $ref: '#/components/schemas/MnsRegistry-Single'
       - $ref: '#/components/schemas/MnsInfo-Single'
