3GPP TS 28.536 Cosla Nrm API

OAS 3.0.1 specification of the Cosla 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.1.0, published verbatim by 3GPP in 3GPP TS 28.536 as part of the Management Services (SA5 OAM) suite and mirrored in the public 3GPP Forge GitLab repository.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/3gpp-ts28536-coslanrm"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

3gpp-ts28536-coslanrm.yml Raw ↑
openapi: 3.0.1
info:
  title: coslaNrm
  version: 19.1.0
  description: OAS 3.0.1 specification of the Cosla NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS,
    CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
externalDocs:
  description: 3GPP TS 28.536; Cosla NRM
  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.536/
paths: {}
components:
  schemas:
    ControlLoopLifeCyclePhase:
      type: string
      enum:
      - PREPARATION
      - COMMISSIONING
      - OPERATION
      - DECOMMISSIONING
    ObservationTime:
      type: integer
    AssuranceGoalStatusObserved:
      type: string
      readOnly: true
      enum:
      - FULFILLED
      - NOT_FULFILLED
    AssuranceGoalStatusPredicted:
      type: string
      readOnly: true
      enum:
      - FULFILLED
      - NOT_FULFILLED
    AssuranceTargetStatusObserved:
      type: string
      readOnly: true
      enum:
      - FULFILLED
      - NOT_FULFILLED
    AssuranceTargetStatusPredicted:
      type: string
      readOnly: true
      enum:
      - FULFILLED
      - NOT_FULFILLED
    AssuranceTargetName:
      type: string
      readOnly: true
    AssuranceTarget:
      type: object
      properties:
        assuranceTargetName:
          $ref: '#/components/schemas/AssuranceTargetName'
        assuranceTargetValue:
          type: string
          readOnly: true
    AssuranceTargetList:
      type: array
      uniqueItems: true
      minItems: 1
      items:
        $ref: '#/components/schemas/AssuranceTarget'
    AssuranceGoalStatus:
      type: object
      properties:
        assuranceGoalStatusId:
          type: string
          readOnly: true
        assuranceGoalId:
          $ref: TS28623_ComDefs.yaml#/components/schemas/DnRo
        assuranceGoalStatusObserved:
          $ref: '#/components/schemas/AssuranceGoalStatusObserved'
        assuranceGoalStatusPredicted:
          $ref: '#/components/schemas/AssuranceGoalStatusPredicted'
    AssuranceGoalStatusList:
      type: array
      uniqueItems: true
      minItems: 1
      items:
        $ref: '#/components/schemas/AssuranceGoalStatus'
    AssuranceTargetStatus:
      type: object
      properties:
        assuranceTargetStatusId:
          type: string
          readOnly: true
        assuranceTargetName:
          $ref: '#/components/schemas/AssuranceTargetName'
        assuranceTargetStatusObserved:
          $ref: '#/components/schemas/AssuranceTargetStatusObserved'
        assuranceTargetStatusPredicted:
          $ref: '#/components/schemas/AssuranceTargetStatusPredicted'
    AssuranceTargetStatusList:
      type: array
      uniqueItems: true
      minItems: 1
      items:
        $ref: '#/components/schemas/AssuranceTargetStatus'
    AttributeNameList:
      type: array
      uniqueItems: true
      items:
        type: string
    ACCLDisallowedAttributes:
      type: object
      properties:
        managedEntityIdentifier:
          $ref: TS28623_ComDefs.yaml#/components/schemas/Dn
        attributeNameList:
          $ref: '#/components/schemas/AttributeNameList'
    AssuranceScope:
      type: object
      properties:
        taiList:
          $ref: TS28541_NrNrm.yaml#/components/schemas/TaiList
    SubNetwork-ncO-CoslaNrm:
      type: object
      properties:
        AssuranceClosedControlLoop:
          $ref: '#/components/schemas/AssuranceClosedControlLoop-Multiple'
    ManagedElement-ncO-CoslaNrm:
      type: object
      properties:
        AssuranceClosedControlLoop:
          $ref: '#/components/schemas/AssuranceClosedControlLoop-Multiple'
    AssuranceClosedControlLoop-Single:
      allOf:
      - $ref: TS28623_GenericNrm.yaml#/components/schemas/Top
      - type: object
        properties:
          attributes:
            type: object
            properties:
              operationalState:
                $ref: TS28623_ComDefs.yaml#/components/schemas/OperationalState
              administrativeState:
                $ref: TS28623_ComDefs.yaml#/components/schemas/AdministrativeState
              controlLoopLifeCyclePhase:
                $ref: '#/components/schemas/ControlLoopLifeCyclePhase'
              aCCLDisallowedList:
                type: array
                uniqueItems: true
                items:
                  $ref: '#/components/schemas/ACCLDisallowedAttributes'
              networkSliceRef:
                $ref: TS28623_ComDefs.yaml#/components/schemas/Dn
              networkSliceSubnetRef:
                $ref: TS28623_ComDefs.yaml#/components/schemas/Dn
          AssuranceReport:
            $ref: '#/components/schemas/AssuranceReport-Single'
          AssuranceGoal:
            $ref: '#/components/schemas/AssuranceGoal-Multiple'
    AssuranceGoal-Single:
      allOf:
      - $ref: TS28623_GenericNrm.yaml#/components/schemas/Top
      - type: object
        properties:
          attributes:
            allOf:
            - type: object
              properties:
                observationTime:
                  $ref: '#/components/schemas/ObservationTime'
                assuranceTargetList:
                  $ref: '#/components/schemas/AssuranceTargetList'
                assuranceScope:
                  $ref: '#/components/schemas/AssuranceScope'
                serviceProfileId:
                  type: string
                sliceProfileId:
                  type: string
    AssuranceReport-Single:
      allOf:
      - $ref: TS28623_GenericNrm.yaml#/components/schemas/Top
      - type: object
        properties:
          attributes:
            allOf:
            - type: object
              properties:
                assuranceGoalStatusList:
                  $ref: '#/components/schemas/AssuranceGoalStatusList'
                assuranceGoalRef:
                  $ref: TS28623_ComDefs.yaml#/components/schemas/DnRo
    AssuranceClosedControlLoop-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/AssuranceClosedControlLoop-Single'
    AssuranceGoal-Multiple:
      type: array
      items:
        $ref: '#/components/schemas/AssuranceGoal-Single'
    resources-coslaNrm:
      oneOf:
      - $ref: '#/components/schemas/AssuranceClosedControlLoop-Single'
      - $ref: '#/components/schemas/AssuranceGoal-Single'
      - $ref: '#/components/schemas/AssuranceReport-Single'
servers:
- url: https://forge.3gpp.org/rep/api/v4
  description: Base URL reconciled from apis.yml