Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table of Contents

Starting TEIV with Docker Compose

To start TEIV navigate to the 'docker-compose' directory in the 'teiv' repo and run 'docker-compose up'. This will bring up 3 Kafka containers, Zookeeper, PostgreSQL using PostGIS, TEIV Exposure, and TEIV Ingestion. The TEIV Ingestion and an optional kafka-producer service that will populate the database automatically, allowing you to query the database straight away.

If the kafka-producer isn't needed you can comment it out in the docker-compose.yml file. If commented out database won't be populated with any topology data, but the 'cloudEventProducer.sh' script in 'docker-compose/cloudEventProducer' can be used to populate the database with sample data that will enable querying of the database.

...

languagetext
titleExample Data
linenumberstrue
collapsetrue

...

Sample data can be found at docker-compose/cloudEventProducer/events

Sample API calls

To get a list of all API calls and details go to TEIV API documentation.

To get a list of supported domains click here.

Postman collection

Collection: Query TEIV.postman_collection.json

Environment: TEIV.postman_environment.json

Schema for "Create classifiers and decorators schema": classifiers-and-decorators-module.yang

Retrieving and using topology modules

Topology & Inventory provides APIs to enable users to query module data that can be used to understand the existing topology and inventory model, parse the modules, and understand what objects are supported over the R1 interface, so adequate queries can be made on topology and inventory data.

The API endpoints returning lists support pagination. The default value for number of items returned is 500, which is also the upper limit.

Sample request to fetch a list of all domains in TEIV:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains

Response:

Code Block
titleGET domains Response
linenumberstrue
collapsetrue
{
    "items": [
       "attributes": {
            "fdnname": "ManagedElement=NR01CLOUD",
            "cmIdentityTypes": {
              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifierhref": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]"
     domains/CLOUD/entity-types"
    }         },
      }     ],     "o-ran-smo-teiv-ran:GNBDUFunctionrelationshipTypes": [{
       {         "idhref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",/domains/CLOUD/relationship-types"
        "attributes": {   }
       "gNBDUId": 1},
        {
 "gNBId": 1,
          "gNBIdLengthname": 23"EQUIPMENT",
            "dUpLMNIdentityTypes": {
            "mcc": 353,          "href": "/domains/EQUIPMENT/entity-types"
  "mnc": 87         },
 },           "fdnrelationshipTypes": "ManagedElement=NR01,GNBDUFunction=1",{
          "cmId": {     "href": "/domains/EQUIPMENT/relationship-types"
      "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",     }
       "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]" },
        {
 }         }  "name": "OAM",
   }     ],     "o-ran-smo-teiv-ran:NRSectorCarrier"entityTypes": {
[       {         "idhref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",/domains/OAM/entity-types"
            },
            "attributesrelationshipTypes": {
                "arfcnDLhref": 4000, "/domains/OAM/relationship-types"
            }
       "arfcnUL": 40000},
        {
   "frequencyDL         "name": 4"RAN",
            "frequencyULentityTypes": 40,{
                "fdnhref": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",/domains/RAN/entity-types"
           "cmId": { },
            "cmHandlerelationshipTypes": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG", {
                "resourceIdentifierhref": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=1]"domains/RAN/relationship-types"
            }
        },
      },   {
   {         "idname": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",REL_CLOUD_RAN",
            "attributesentityTypes": {
          "arfcnDL": 5000,      "href": "/domains/REL_CLOUD_RAN/entity-types"
           "arfcnUL": 50000},
            "frequencyDLrelationshipTypes": 5,{
          "frequencyUL": 50,           "fdn"href": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
 /domains/REL_CLOUD_RAN/relationship-types"
            }
        },
        {
            "cmIdname": {"REL_EQUIPMENT_RAN",
            "cmHandleentityTypes": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",{
                "resourceIdentifierhref": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=2]"domains/REL_EQUIPMENT_RAN/entity-types"
            },
        }    "relationshipTypes": {
 },       {
        "idhref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",/domains/REL_EQUIPMENT_RAN/relationship-types"
        "attributes": {   }
       "arfcnDL": 6000},
        {
 "arfcnUL": 60000,           "frequencyDLname": 6"REL_OAM_CLOUD",
            "frequencyULentityTypes": 60, {
                "fdnhref": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"/domains/REL_OAM_CLOUD/entity-types"
            },
            "cmIdrelationshipTypes": {
                "cmHandlehref": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",/domains/REL_OAM_CLOUD/relationship-types"
            }
"resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=3]"
        },
        {
}         }   "name": "REL_OAM_RAN",
  }     ],     "o-ran-smo-teiv-ran:NRCellDUentityTypes": {
[       {         "idhref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",/domains/REL_OAM_RAN/entity-types"
        "attributes": {   },
       "cellLocalId": 1,    "relationshipTypes": {
     "nRTAC": 40,           "nRPCIhref": 400,"/domains/REL_OAM_RAN/relationship-types"
            }
       "nCI": 24577},
         {
"fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",           "cmIdname": {"TEIV",
            "cmHandleentityTypes": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG", {
                "resourceIdentifierhref": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=1]domains/TEIV/entity-types"
            },
        }    "relationshipTypes": {
 },       {         "idhref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
/domains/TEIV/relationship-types"
       "attributes": {    }
      "cellLocalId": 2, }
    ],
    "nRTACself": 50,{
          "nRPCIhref": 500,"/domains?offset=0&limit=500"
    },
     "nCIfirst": 24578,
 {
        "fdnhref": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",/domains?offset=0&limit=500"
    },
     "cmIdprev": {
  
         "cmHandlehref": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG"/domains?offset=0&limit=500"
    },
    "next": {
        "resourceIdentifierhref": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=2]domains?offset=0&limit=500"
    },
    "last": {
}         }"href": "/domains?offset=0&limit=500"
    },
 }   "totalCount":  ],9
}


...

Sample request to fetch a list of all modules in TEIV:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/schemas

Response:

Code Block
languagetext
titleGET schemas Response
linenumberstrue
collapsetrue
{
    "o-ran-smo-teiv-ran:AntennaCapabilityitems": [
        {
         "id   "name": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1_3gpp-common-yang-extensions",
            "attributesdomain": "",
{            "eUtranFqBandsrevision": "[1,2,3]2019-06-23",
            "geranFqBandscontent": "[10,11,12]", {
                "nRFqBandshref": "[100,101,102]",/schemas/_3gpp-common-yang-extensions/content"
            }
    "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",   },
       "cmId": {
            "cmHandlename": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG_3gpp-common-yang-types",
            "resourceIdentifierdomain": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=1]"",
          }
  "revision": "2022-07-26",
       }     "content": {
},       {         "idhref": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",/schemas/_3gpp-common-yang-types/content"
        "attributes": {   }
       "eUtranFqBands": "[4,5,6]", },
        {
 "geranFqBands": "[13,14,15]",
          "nRFqBandsname": "[103,104,105]ietf-geo-location",
            "fdndomain": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
            "cmIdrevision": {"2022-02-11",
            "cmHandlecontent": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",{
                "resourceIdentifierhref": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=2]schemas/ietf-geo-location/content"
          }     }
   }       }
    ],
    "o-ran-smo-teiv-equipment:AntennaModule": [   {
   {         "idname": "urn:o-ran:smo-teiv-equipment:1ietf-inet-types",
            "attributesdomain": "",
 {           "antennaModelNumberrevision": "12013-07-15",
            "mechanicalAntennaBearingcontent": 50, {
                "mechanicalAntennaTilthref": 10, "/schemas/ietf-inet-types/content"
            }
       "positionWithinSector": "Unknown" },
        {
 "totalTilt": 14,           "electricalAntennaTiltname": 2"ietf-yang-types",
            "fdndomain": "Unknown",
            "cmIdrevision": {"2013-07-15",
            "cmHandlecontent": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG", {
                "resourceIdentifierhref": "Unknown/schemas/ietf-yang-types/content"
            }
        },
      },   {
   {         "idname": "urn:o-ran:-smo-teiv-equipment:2cloud",
            "attributesdomain": "CLOUD",
{            "antennaModelNumberrevision": "22024-05-02",
            "mechanicalAntennaBearingcontent": 45,
     {
    "mechanicalAntennaTilt": 12,           "positionWithinSectorhref": "Unknown",
/schemas/o-ran-smo-teiv-cloud/content"
         "totalTilt": 15,  }
        "electricalAntennaTilt": 1},
        {
 "fdn": "Unknown",           "cmIdname": {"o-ran-smo-teiv-common-yang-extensions",
            "cmHandledomain": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifierrevision": "Unknown2024-05-24",
          }  "content": {
     }       }     ],
    ""href": "/schemas/o-ran-smo-teiv-equipment:Site": [-common-yang-extensions/content"
            }
        },
        {
            "idname": "urn:o-ran:-smo-teiv-equipment:1-common-yang-types",
            "attributesdomain": {"",
            "namerevision": "Site2024-05-124",
            "geo-locationcontent": {
                "latitudehref": 41.73297,"/schemas/o-ran-smo-teiv-common-yang-types/content"
            "longitude": -78.007696
}
         },
          "cmId": {
            "cmHandlename": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAGo-ran-smo-teiv-equipment",
            "resourceIdentifierdomain": "UnknownEQUIPMENT",
          }
  "revision": "2024-05-24",
       }     "content": {
},       {         "idhref": "urn:/schemas/o-ran:-smo-teiv-equipment:2/content",
        "attributes": {   }
       "name": "Site-2",
 },
         "geo-location": {
            "latitudename": 46.73297"o-ran-smo-teiv-oam",
            "longitudedomain": -76.007696"OAM",
             }"revision": "2024-05-24",
            "cmIdcontent": {
                "cmHandlehref": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",/schemas/o-ran-smo-teiv-oam/content"
            "resourceIdentifier": "Unknown"}
        },
  }      {
  }       }     ],
    "name": "o-ran-smo-teiv-ran:Sector": [,
      {         "iddomain": "urn:o-ran:smo-teiv-ran:1",
     RAN",
  "attributes": {           "sectorIdrevision": 1,
"2024-05-24",
         "azimuth": 75.345,           "geo-location"content": {
      
     "latitude": 40.73297,             "longitudehref": -74.007696"/schemas/o-ran-smo-teiv-ran/content"
            }
        },
      },  {
    {         "idname": "urn:o-ran:-smo-teiv-rel-cloud-ran:2",
        "attributes": {
           "sectorIddomain": 2,"REL_CLOUD_RAN",
            "azimuthrevision": 90.8967"2024-05-02",
            "geo-locationcontent": {
                "latitudehref": 41.73297,"/schemas/o-ran-smo-teiv-rel-cloud-ran/content"
            "longitude": -73.007696}
          },
        }
{
     }     ],    "name": "o-ran-smo-teiv-cloud:CloudifiedNF": [-rel-equipment-ran",
       {         "iddomain": "urn:o-ran:smo-teiv-cloud:1REL_EQUIPMENT_RAN",
        "attributes": {     "revision": "2024-05-24",
     "name": "CloudifiedNF-1"       "content": {
}       }     ],    "href": "/schemas/o-ran-smo-teiv-cloud:NFDeployment": [-rel-equipment-ran/content"
            }
        },
        {
            "idname": "urn:o-ran:-smo-teiv-rel-oam-cloud:1",
            "attributesdomain": { "REL_OAM_CLOUD",
            "namerevision": "NFDeployment2024-05-102",
        }    "content": {
 }     ]   },   "relationships": {   "href":  "/schemas/o-ran-smo-teiv-rel-oam-to-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [cloud/content"
            }
        },
        {
            "idname": "urn:o-ran:-smo-teiv-rel-oam-to-logical:1ran",
            "aSidedomain": "urn:3gpp:dn:ManagedElement=NR01REL_OAM_RAN",
            "bSiderevision": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"2024-05-24",
      }     ],     "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER": ["content": {
       {         "idhref": "urn:/schemas/o-ran:-smo-teiv-rel-oam-ran:1/content",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",   }
     "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"  }
    }],
     "self": {
        "idhref": "urn:o-ran:smo-teiv-ran:2",/schemas?offset=0&limit=500"
    },
    "aSidefirst": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",{
        "bSidehref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2/schemas?offset=0&limit=500"
      },
    "prev":  {
        "idhref": "urn:o-ran:smo-teiv-ran:3",/schemas?offset=0&limit=500"
    },
    "aSidenext": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",{
        "bSidehref": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3/schemas?offset=0&limit=500"
      }
    ],
    "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRCELLDUlast": [       {
        "idhref": "urn:o-ran:smo-teiv-ran:1",/schemas?offset=0&limit=500"
    },
    "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
totalCount": 15
}


...

Sample request to fetch a list of all modules related to the CLOUD domain:

To get a list of all modules for a specific domain, use a domain query parameter. The query parameter is case sensitive. 

Note: - Partial matches are also supported in the query parameter using ’.*’ as a wild card. - If the specified domain does not exist, an empty list is returned.

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/schemas?domain=.*CLOUD.*

Response:

Code Block
languagetext
titleGET CLOUD Schema Response
linenumberstrue
collapsetrue
{
    "items": [
     },   {
   {         "idname": "urn:o-ran:-smo-teiv-ran:2cloud",
            "aSidedomain": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1CLOUD",
            "bSiderevision": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
2024-05-02",
     }     ],     "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER"content": [{
       {         "idhref": "urn:/schemas/o-ran:-smo-teiv-ran:1",cloud/content"
           "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1", }
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"},
      },   {
   {         "idname": "urn:o-ran:-smo-teiv-rel-cloud-ran:2",
            "aSidedomain": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",REL_CLOUD_RAN",
            "bSiderevision": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"2024-05-02",
      },      "content": {
        "id        "href": "urn:/schemas/o-ran:-smo-teiv-rel-cloud-ran:3",/content"
          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
 }
       "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3" },
        {
   }     ],    "name": "o-ran-smo-teiv-ran:NRSECTORCARRIER_USES_ANTENNACAPABILITY": [rel-oam-cloud",
       {         "iddomain": "urn:o-ran:smo-teiv-ran:1REL_OAM_CLOUD",
            "aSiderevision": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",2024-05-02",
            "bSidecontent": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
      },{
       {         "idhref": "urn:/schemas/o-ran:-smo-teiv-ran:2",rel-oam-cloud/content"
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",   }
     "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"  }
    }],
    "self":  {
        "idhref": "urn:o-ran:smo-teiv-ran:3",/schemas?offset=0&limit=500&domain=.*CLOUD.*"
    },
    "aSidefirst": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",{
        "bSidehref": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
 /schemas?offset=0&limit=500&domain=.*CLOUD.*"
    },
    ],
"prev": {
   "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [    "href": "/schemas?offset=0&limit=500&domain=.*CLOUD.*"
 {   },
     "idnext": "urn:o-ran:smo-teiv-equipment-to-ran:1",{
        "aSidehref": "urn:o-ran:smo-teiv-equipment:1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
/schemas?offset=0&limit=500&domain=.*CLOUD.*"
     },
     "last": {
        "idhref": "urn:o-ran:smo-teiv-equipment-to-ran:2",/schemas?offset=0&limit=500&domain=.*CLOUD.*"
    },
    "aSidetotalCount": "urn:3
}


...

Sample request to fetch the module data for the o-ran

...

-smo-teiv-

...

oam module:

To get a specific module, supply a module name in the path parameter.

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/schemas/o-ran-smo-teiv-oam/content

Response:

Code Block
languagetext
titleGET OAM Schema Content Response
linenumberstrue
collapsetrue
module o-ran-smo-teiv-oam {
    yang-version 1.1;
    namespace "urn:o-ran:smo-teiv-oam";
    prefix or-teiv-oam;

    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }

    import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }

    organization "Ericsson AB";
    contact "Ericsson first line support via email";
    description
    "RAN O&M topology model.

    Copyright (c) 2023 Ericsson AB. All rights reserved.

    This model contains the topology entities and relations in the
    RAN O&M domain, which are intended to represent management systems
    and management interfaces.";

    revision "2024-05-02" {
        description "aSide":Initial "urn:o-ran:smo-teiv-ran:1",revision.";
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"or-teiv-yext:label 0.3.0;
    }

},    or-teiv-yext:domain OAM;

{    list ManagedElement {
  "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",     description "A Managed  "aSide": "urn:o-ran:smo-teiv-ran:2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"Element (ME) is a node into a telecommunication network
          },       {   providing support and/or service to  "id": "urn:o-ran:smo-teiv-equipment-to-ran:3",
subscribers. An ME communicates
       "aSide": "urn:o-ran:smo-teiv-ran:2",         "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=3"  with a manager application (directly }or indirectly) over one or ],more
    "o-ran-smo-teiv-oam-to-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [       {        interfaces "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
        "aSide": "urn:o-ran:smo-teiv-cloud:1",for the purpose of being monitored and/or controlled.";

        uses or-teiv-types:Top_Grp_Type;
        key id;
"bSide":
"urn:3gpp:dn:ManagedElement=NR01"       } container attributes {
 ],     "o-ran-smo-teiv-oam-to-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [     leaf fdn {
        "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",        description "aSide": "urn:3gpp:dn:ManagedElement=NR01",
   This Full Distinguished Name (FDN) identifies
    "bSide": "urn:o-ran:smo-teiv-cloud:1"          }     ],     "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [   an instance of the {ManagedElement MO. It contains
     "id": "urn:o-ran:smo-teiv-cloud:1",         "aSide": "urn:o-ran:smo-teiv-cloud:1",         "bSide": "urn:o-ran:smo-teiv-cloud:1"  the full path from the }Subnetwork to the
  ],     "o-ran-smo-teiv-cloud-to-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [       {         "id": "urn:o-ran:smo-teiv-cloud-to-ran:1",    ManagedElement.";
                type or-teiv-types:_3GPP_FDN_Type;
            }

            container cmId {
                "aSide": "urn:o-ran:smo-teiv-cloud:1",uses or-teiv-types:CM_ID;
          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
 }
     }   }
 ]   }
}

Sample API calls

To get a list of all API calls and details go to TEIV API documentation.

To get a list of supported domains click here.

Postman collection

Collection:

Environment:

Retrieving and using topology modules

Topology & Inventory provides APIs to enable users to query module data that can be used to understand the existing topology and inventory model, parse the modules, and understand what objects are supported over the R1 interface, so adequate queries can be made on topology and inventory data.

The API endpoints returning lists support pagination. The default value for number of items returned is 500, which is also the upper limit.

...


...

Reading entities and relationships

Sample request to fetch the entities for EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains

...

/EQUIPMENT/entity-types

Response:

Code Block
languagetext
titleGET domains domain entity types Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "name": "CLOUDAntennaModule",
            "entityTypesentities": {
                "href": "/domains/CLOUDEQUIPMENT/entity-types/AntennaModule/entities"
            }
        },
        {
            "name": "PhysicalNF",
            "relationshipTypesentities": {
                "href": "/domains/CLOUDEQUIPMENT/relationshipentity-types/PhysicalNF/entities"
            }
        },
        {
            "name": "CLOUD_TO_RANSite",
            "entityTypesentities": {
                "href": "/domains/CLOUD_TO_RANEQUIPMENT/entity-types/Site/entities"
            },
        }
   "relationshipTypes": { ],
    "self": {
          "href": "/domains/CLOUD_TO_RAN/relationship-typesEQUIPMENT/entity-types?offset=0&limit=500"
    },
    "first": {
 }         },"href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
    },
   {    "prev": {
        "namehref": "/domains/EQUIPMENT",/entity-types?offset=0&limit=500"
    },
       "entityTypesnext": {
   
            "href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
            },
      
     "relationshipTypeslast": {
     
          "href": "/domains/EQUIPMENT/relationshipentity-types?offset=0&limit=500"
            }
        },
        {
            "name": "EQUIPMENT_TO_RAN",
    "totalCount": 3
}


...

Sample request to fetch the AntennaModule entities from EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities

Response:

Code Block
languagetext
titleGET entities from domain Response
linenumberstrue
collapsetrue
{
    "items": [
       "entityTypes": {
   
            "hrefo-ran-smo-teiv-equipment:AntennaModule": "/domains/EQUIPMENT_TO_RAN/entity-types"[
            },    {
        "relationshipTypes": {           "id": "urn:oran:smo:teiv:AntennaModule=1"
    "href": "/domains/EQUIPMENT_TO_RAN/relationship-types"             }
        },    ]
    {             "name": "OAM",
   },
        "entityTypes": {
   
            "hrefo-ran-smo-teiv-equipment:AntennaModule": "/domains/OAM/entity-types"[
            },     {
       "relationshipTypes": {                 "hrefid": "/domains/OAM/relationship-typesurn:oran:smo:teiv:AntennaModule=2"
            }     }
   },         {]
        }
   "name": "OAM_TO_CLOUD",
 ],
           "entityTypes"self": {
                "href": "/domains/OAM_TO_CLOUDEQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "first": {
 },       "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    "relationshipTypes": {},
    "prev": {
           "href": "/domains/OAM_TO_CLOUD/relationship-typesEQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "next": {
 }       "href":  },"/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "last": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
  "name": "OAM_TO_RAN"  },
    "totalCount": 2
}


...

Sample request to fetch a specific AntennaModule from EQUIPMENT by id:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1

Response:

Code Block
languagetext
titleGET entity from domain by id Response
linenumberstrue
collapsetrue
{
    "entityTypeso-ran-smo-teiv-equipment:AntennaModule": {[
        {
            "hrefdecorators": "/domains/OAM_TO_RAN/entity-types" {},
             }"classifiers": [],
            "relationshipTypesattributes": {
                "hrefmechanicalAntennaTilt": "/domains/OAM_TO_RAN/relationship-types"10,
            }         },
"mechanicalAntennaBearing": 50,
       {             "namepositionWithinSector": "RANUnknown",
            "entityTypes    "geo-location": {
                    "hrefheight": "/domains/RAN/entity-types"3000,
            },        "latitude": 41.73297,
   "relationshipTypes": {
                "hreflongitude": "/domains/RAN/relationship-types"-73.007696
            }    },
    },         {   "antennaModelNumber": "1",
        "name        "totalTilt": "TEIV",14,
                "entityTypesantennaBeamWidth": {[
                  "href": "/domains/TEIV/entity-types"
 35,
           },         23,
   "relationshipTypes": {                21
"href": "/domains/TEIV/relationship-types"             }  ],
      }     ],     "selfelectricalAntennaTilt": {2
        "href": "/domains?offset=0&limit=500"     },
    "first": {         "hrefid": "/domains?offset=0&limit=500"urn:oran:smo:teiv:AntennaModule=1",
    },        "prevsourceIds": {[
                "href": "/domains?offset=0&limit=500"urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1",
      },          "next": {urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1,AntennaSubunit=1",
          "href": "/domains?offset=0&limit=500"     },"urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1"
    "last":  {      ]
  "href": "/domains?offset=0&limit=500"     },
    "totalCount": 9]
}


...

Sample request to fetch

...

all relationships from a specific AntennaModule from EQUIPMENT by id:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/schemas/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships

Response:

Code Block
languagetext
titleGET schemas entity relationships from domain by id Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "domaino-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [],
            "name": "o-ran-smo-teiv-common-yang-extensions",        {
    "content": {                 "hrefbSide": "/schemas/o-ran-smo-teiv-common-yang-extensions/content"urn:oran:smo:teiv:Site=1",
            },             "revisionaSide": "2024-05-02"
        },
urn:oran:smo:teiv:AntennaModule=1",
       {             "domainid": ["urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1"
                "OAM_TO_CLOUD"}
            ],
        }
   "name": "o-ran-smo-teiv-oam-to-cloud" ],
            "content"self": {

               "href": "/domains/schemasEQUIPMENT/o-ran-smo-teiv-oam-to-cloud/contententity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
    },
    "first": {
 },             "revision": "2024-05-02"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
        },
        {
 
          "domain"prev": [],{
            "namehref": "o-ran-smo-teiv-common-yang-types",/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
    },
       "contentnext": {
                "href": "/schemasdomains/o-ran-smo-teiv-common-yang-types/contentEQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
    },
       },"last": {
            "revisionhref": "2024-05-02"
/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
       },
     
  {             "domain"totalCount": [
     1
}


...

Sample request to fetch all relationship types in EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types

Response:

Code Block
languagetext
titleGET all domain relationship types Response
linenumberstrue
collapsetrue
{
          "OAM"
"items": [
        {
  ],             "name": "o-ran-smo-teiv-oamANTENNAMODULE_INSTALLED_AT_SITE",
            "contentrelationships": {
                "href": "/domains/schemasEQUIPMENT/o-ran-smo-teiv-oam/contentrelationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships"
            },
        }
   "revision": "2024-05-02"
        } ],
        "self": {
            "domainhref": ["/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
    "first": {
     "OAM_TO_RAN"   "href": "/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
   ],    "prev": {
        "namehref": "o-ran-smo-teiv-oam-to-ran",/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
       },
    "contentnext": {
                "href": "/schemasdomains/EQUIPMENT/o-ran-smo-teiv-oam-to-ran/contentrelationship-types?offset=0&limit=500"
    },
       },
   "last": {
        "revisionhref": "2024-05-02/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
        },
    "totalCount": 1
  {
 }


...

Sample request to fetch ANTENNAMODULE_INSTALLED_AT_SITE relationships from EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships

Response:

Code Block
languagetext
titleGET specific relationships from domain Response
linenumberstrue
collapsetrue
{
          "domain"items": [
        {
       "RAN"        "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
    ],            {
      "name": "o-ran-smo-teiv-ran",             "bSide"content": {: "urn:oran:smo:teiv:Site=1",
                    "hrefaSide": "/schemas/o-ran-smo-teiv-ran/content"
urn:oran:smo:teiv:AntennaModule=1",
           },             "revisionid": "2024-05-02urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1"
        },        }
{            ]
"domain": [       },
        {
"EQUIPMENT"             ],
            "name": "o-"o-ran-smo-teiv-equipment",:ANTENNAMODULE_INSTALLED_AT_SITE": [
               "content": {
                    "hrefbSide": "/schemas/o-ran-smo-teiv-equipment/content"urn:oran:smo:teiv:Site=2",
            },
            "revisionaSide": "2024-05-02"urn:oran:smo:teiv:AntennaModule=2",
        },             {"id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=2"
            "domain": [   }
            ]
"CLOUD_TO_RAN"        }
    ],
    "self": {
        "namehref": "o-ran-smo-teiv-cloud-to-ran",/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
      },
     "contentfirst": {
     
          "href": "/schemasdomains/EQUIPMENT/o-ran-smo-teiv-cloud-to-ran/contentrelationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
    "prev": {
 },             "revision"href": "2024-05-02"
  /domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
     },
        {
  "next": {
         "domainhref": ["/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
      },
         "CLOUDlast"
        : {
   ],             "name"href": "o-ran-smo-teiv-cloud",/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
       "contenttotalCount": {
                "href": "/schemas/2
}


...

Sample request to fetch ANTENNAMODULE_INSTALLED_AT_SITE relationship from EQUIPMENT by id:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships/urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1

Response:

Code Block
languagetext
titleGET a specific relationship from domain by id Response
linenumberstrue
collapsetrue
{
    "o-ran-smo-teiv-cloud/content"
equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
        {
  },             "revisiondecorators": "2024-05-02"{},
        },         {"bSide": "urn:oran:smo:teiv:Site=1",
            "domainaSide": [
 "urn:oran:smo:teiv:AntennaModule=1",
              "EQUIPMENT_TO_RAN"
            "classifiers": [],
            "nameid": "o-ran-smo-teiv-equipment-to-ranurn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1",
            "contentsourceIds": {[]
        }
       "href": "/schemas/o-ran-smo-teiv-equipment-to-ran/content"
            },
            "revision": "2024-05-02"
        }
    ],
    "self":]
}


...

Querying entities and relationships:

Use the targetFilter parameter to narrow down the fields to return. To filter the results which match a given criteria, use the scopeFilter. Think of it as an SQL statement, where the targetFilter is the SELECT, and the scopeFilter is the WHERE tag.

Supported filter options

Sample request to query AntennaModule entities and attributes from  EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?targetFilter=/AntennaModule/attributes
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities?targetFilter=/attributes

Response:

Code Block
languagetext
titleGET domain entities and attributes Response
linenumberstrue
collapsetrue
{
    "items": [
        {
        "href    "o-ran-smo-teiv-equipment:AntennaModule": "/schemas?offset=0&limit=500" [
          },     "first": {
         "href": "/schemas?offset=0&limit=500"     },     "prevattributes": {
        "href": "/schemas?offset=0&limit=500"           },     "nextmechanicalAntennaTilt": {10,
         "href": "/schemas?offset=0&limit=500"     },     "last": {   "mechanicalAntennaBearing": 50,
    "href": "/schemas?offset=0&limit=500"     },     "totalCount": 10
}

Sample request to fetch a list of all modules related to the CLOUD domain:

To get a list of all modules for a specific domain, use a domain query parameter. The query parameter is case sensitive. 

Note: - Partial matches are also supported in the query parameter using ’.*’ as a wild card. - If the specified domain does not exist, an empty list is returned.

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/schemas?domain=.*CLOUD.*

Response:

Code Block
languagetext
titleGET CLOUD Schema Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "domain": [
                "OAM_TO_CLOUD"
            ],
            "name": "o-ran-smo-teiv-oam-to-cloud",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-oam-to-cloud/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "CLOUD_TO_RAN"
            ],
            "name": "o-ran-smo-teiv-cloud-to-ran",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-cloud-to-ran/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "CLOUD"
            ],
            "name": "o-ran-smo-teiv-cloud",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-cloud/content"
            },
            "revision": "2024-05-02"
        }
    ],
    "self": {
        "href": "/schemas?offset=0&limit=500"
    },
    "first": {
        "href": "/schemas?offset=0&limit=500"
    },
    "prev": {
        "href": "/schemas?offset=0&limit=500"
    },
    "next": {
        "href": "/schemas?offset=0&limit=500"
    },
    "last": {
        "href": "/schemas?offset=0&limit=500"
    },
    "totalCount": 3
}

Sample request to fetch the module data for the o-ran-smo-teiv-oam module:

To get a specific module, supply a module name in the path parameter.

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/schemas/o-ran-smo-teiv-oam/content

Response:

Code Block
languagetext
titleGET OAM Schema Content Response
linenumberstrue
collapsetrue
module o-ran-smo-teiv-oam {
    yang-version 1.1;
    namespace "urn:o-ran:smo-teiv-oam";
    prefix or-teiv-oam;

    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }

    import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }

    organization "Ericsson AB";
    contact "Ericsson first line support via email";
    description
    "RAN O&M topology model.

    Copyright (c) 2023 Ericsson AB. All rights reserved.

    This model contains the topology entities and relations in the
    RAN O&M domain, which are intended to represent management systems
    and management interfaces.";

    revision "2024-05-02" {
        description "Initial revision.";
        or-teiv-yext:label 0.3.0;
    }

    or-teiv-yext:domain OAM;

    list ManagedElement {
        description "A Managed Element (ME) is a node into a telecommunication network
                    providing support and/or service to subscribers. An ME communicates
                    with a manager application (directly or indirectly) over one or more
                    interfaces for the purpose of being monitored and/or controlled.";

        uses or-teiv-types:Top_Grp_Type;
        key id;

        container attributes {
            leaf fdn {
                description "This Full Distinguished Name (FDN) identifies
                            an instance of the ManagedElement MO. It contains
                            the full path from the Subnetwork to the
                            ManagedElement.";
                type or-teiv-types:_3GPP_FDN_Type;
            }

            container cmId {
                uses or-teiv-types:CM_ID;
            }
        }
    }
}

Reading entities and relationships

Sample request to fetch the entities for EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types

Response:

Code Block
languagetext
titleGET domain entity types Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "name": "AntennaModule",
            "entities": {
                "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities"
            }
        },
        {
            "name": "PhysicalNF",
            "entities": {
                "href": "/domains/EQUIPMENT/entity-types/PhysicalNF/entities"
            }
        },
        {
            "name": "Site",
            "entities": {
                "href": "/domains/EQUIPMENT/entity-types/Site/entities"
            }
        }
    ],
    "self": {
        "href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
    },
    "first": {
        "href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
    },
    "prev": {
        "href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
    },
    "next": {
        "href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
    },
    "last": {
        "href": "/domains/EQUIPMENT/entity-types?offset=0&limit=500"
    },
    "totalCount": 3
}

Sample request to fetch the AntennaModule entities from EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities

Response:

Code Block
languagetext
titleGET entities from domain Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "o-ran-smo-teiv-equipment:AntennaModule": [
                {
                    "id": "urn:o-ran:smo-teiv-equipment:1"
                },
                {
                    "id": "urn:o-ran:smo-teiv-equipment:2"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "first": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "prev": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "next": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "last": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500"
    },
    "totalCount": 2
}

Sample request to fetch a specific AntennaModule from EQUIPMENT by id:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1

Response:

Code Block
languagetext
titleGET entity from domain by id Response
linenumberstrue
collapsetrue
{
    "o-ran-smo-teiv-equipment:AntennaModule": [
        {
            "decorators": {},
            "classifiers": [],
            "attributes": {
                "mechanicalAntennaBearing": 50,
                "mechanicalAntennaTilt": 10,
                "positionWithinSector": "Unknown",
                "fdn": "Unknown",
                "geo-location": null,
                "antennaModelNumber": "1",
                "totalTilt": 14,
                "antennaBeamWidth": null,
                "cmId": {
                    "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
                    "resourceIdentifier": "Unknown"
                },
                "electricalAntennaTilt": 2
            },
            "id": "urn:o-ran:smo-teiv-equipment:1",
            "sourceIds": []
        }
    ]
}

Sample request to fetch all relationships from a specific AntennaModule from EQUIPMENT by id:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1/relationships

Response:

Code Block
languagetext
titleGET entity relationships from domain by id Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
                {
                    "bSide": "urn:o-ran:smo-teiv-equipment:1",
                    "aSide": "urn:o-ran:smo-teiv-equipment:1",
                    "id": "urn:o-ran:smo-teiv-equipment:1"
                }
            ]
        },
        {
            "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
                {
                    "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
                    "aSide": "urn:o-ran:smo-teiv-equipment:1",
                    "id": "urn:o-ran:smo-teiv-equipment-to-ran:1"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1/relationships?offset=0&limit=500"
    },
    "first": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1/relationships?offset=0&limit=500"
    },
    "prev": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1/relationships?offset=0&limit=500"
    },
    "next": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1/relationships?offset=0&limit=500"
    },
    "last": {
        "href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:o-ran:smo-teiv-equipment:1/relationships?offset=0&limit=500"
    },
    "totalCount": 2
}

Sample request to fetch all relationship types in EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types

Response:

Code Block
languagetext
titleGET all domain relationship types Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "name": "ANTENNAMODULE_INSTALLED_AT_SITE",
            "relationships": {
                "href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships"
            }
        },
        {
            "name": "PHYSICALNF_INSTALLED_AT_SITE",
            "relationships": {
                "href": "/domains/EQUIPMENT/relationship-types/PHYSICALNF_INSTALLED_AT_SITE/relationships"
            }
        }
    ],
    "self": {
        "href": "/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
    "first": {
        "href": "/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
    "prev": {
        "href": "/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
    "next": {
        "href": "/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
    "last": {
        "href": "/domains/EQUIPMENT/relationship-types?offset=0&limit=500"
    },
    "totalCount": 2
}

Sample request to fetch ANTENNAMODULE_INSTALLED_AT_SITE relationships from EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships

Response:

Code Block
languagetext
titleGET specific relationships from domain Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
                {
                    "bSide": "urn:o-ran:smo-teiv-equipment:1",
                    "aSide": "urn:o-ran:smo-teiv-equipment:1",
                    "id": "urn:o-ran:smo-teiv-equipment:1"
                },
                {
                    "bSide": "urn:o-ran:smo-teiv-equipment:2",
                    "aSide": "urn:o-ran:smo-teiv-equipment:2",
                    "id": "urn:o-ran:smo-teiv-equipment:2"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
    "first": {
        "href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
    "prev": {
        "href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
    "next": {
        "href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
    "last": {
        "href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships?offset=0&limit=500"
    },
    "totalCount": 2
}

Sample request to fetch ANTENNAMODULE_INSTALLED_AT_SITE relationship from EQUIPMENT by id:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships/urn:o-ran:smo-teiv-equipment:1

Response:

Code Block
languagetext
titleGET a specific relationship from domain by id Response
linenumberstrue
collapsetrue
{
    "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
        {
            "bSide": "urn:o-ran:smo-teiv-equipment:1",
            "aSide": "urn:o-ran:smo-teiv-equipment:1",
            "id": "urn:o-ran:smo-teiv-equipment:1",
            "sourceIds": []
        }
    ]
}

Querying entities and relationships:

Use the targetFilter parameter to narrow down the fields to return. To filter the results which match a given criteria, use the scopeFilter. Think of it as an SQL statement, where the targetFilter is the SELECT, and the scopeFilter is the WHERE tag.

Supported filter options

Sample request to query AntennaModule entities and attributes from  EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?targetFilter=/AntennaModule/attributes
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities?targetFilter=/attributes

Response:

Code Block
languagetext
titleGET _______ Response
linenumberstrue
collapsetrue
{
    "items": [        "positionWithinSector": "Unknown",
           {             "o-ran-smo-teiv-equipment:AntennaModule": [geo-location": {
                            "height": 3000,
       {                     "attributeslatitude": { 41.73297,
                            "mechanicalAntennaBearinglongitude": 45-73.007696
                        },
                        "mechanicalAntennaTiltantennaModelNumber": 12"1",
                        "positionWithinSectortotalTilt": "Unknown"14,
                        "fdnantennaBeamWidth": "Unknown", [
                            35,
                "geo-location": null,           23,
             "antennaModelNumber": "2",              21
          "totalTilt": 15,             ],
           "antennaBeamWidth": null,            "electricalAntennaTilt": 2
           "cmId": {        },
                    "cmHandleid": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",urn:oran:smo:teiv:AntennaModule=1"
                }
           "resourceIdentifier": "Unknown" ]
        },
        {
      },      "o-ran-smo-teiv-equipment:AntennaModule": [
                {
   "electricalAntennaTilt": 1                "attributes": {
   },                     "idmechanicalAntennaTilt": "urn:o-ran:smo-teiv-equipment:2"12,
                },        "mechanicalAntennaBearing": 45,
       {                    "positionWithinSector": "attributesUnknown":,
{                         "mechanicalAntennaBearinggeo-location": 50, {
                            "mechanicalAntennaTiltheight": 102500,
                            "positionWithinSectorlatitude": "Unknown"43.75443,
                            "fdnlongitude": "Unknown",-71.096454
                        "geo-location": null},
                        "antennaModelNumber": "12",
                        "totalTilt": 1415,
                        "antennaBeamWidth": null,[
                          "cmId": { 45,
                           "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG" 32,
                            "resourceIdentifier": "Unknown"21
                         }],
                        "electricalAntennaTilt": 21
                    },
                    "id": "urn:o-ranoran:smo-:teiv-equipment:1AntennaModule=2"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule/attributes"
    },
    "first": {
        "href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule/attributes"
    },
    "prev": {
        "href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule/attributes"
    },
    "next": {
        "href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule/attributes"
    },
    "last": {
        "href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule/attributes"
    },
    "totalCount": 2
}


...

Sample request to query CloudifiedNFs name attribute from  EQUIPMENT:

...

languagexml

...

CloudifiedNFs name attribute from  EQUIPMENT:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/CLOUD/entities?targetFilter=/CloudifiedNF/attributes/(name)
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/CLOUD/entity-types/CloudifiedNF/entities?targetFilter=/attributes(name)

Response:

Code Block
languagetext
titleGET _______ get domain entities and specific attributes Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "o-ran-smo-teiv-cloud:CloudifiedNF": [
                {
                    "attributes": {
                        "name": "CloudifiedNF-1"
                    },
                    "id": "urn:o-ranoran:smo-:teiv-cloud:CloudifiedNF:1"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/CloudifiedNF/attributes(name)"
    },
    "first": {
        "href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/CloudifiedNF/attributes(name)"
    },
    "prev": {
        "href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/CloudifiedNF/attributes(name)"
    },
    "next": {
        "href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/CloudifiedNF/attributes(name)"
    },
    "last": {
        "href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/CloudifiedNF/attributes(name)"
    },
    "totalCount": 1
}


...

Sample request to query

...

ODUFunction entities and the gNBId, gNBIdLength attributes from RAN:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entities?targetFilter=/GNBDUFunctionODUFunction/attributes(gNBId, gNBIdLength)
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/GNBDUFunctionODUFunction/entities?targetFilter=/attributes(gNBId, gNBIdLength)

Response:

Code Block
languagetext
titleGET _______ domain entities and multiple attributes Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "o-ran-smo-teiv-ran:GNBDUFunctionODUFunction": [
                {
                    "attributes": {
                        "gNBId": 1,
                        "gNBIdLength": 23
                    },
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/RAN/entity-types/GNBDUFunction/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
    },
    "first": {
        "href": "/domains/RAN/entity-types/GNBDUFunction/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
    },
    "prev": {
        "href": "/domains/RAN/entity-types/GNBDUFunction/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
    },
    "next": {
        "href": "/domains/RAN/entity-types/GNBDUFunction/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
    },
    "last": {
        "href": "/domains/RAN/entity-types/GNBDUFunction/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
    },
    "totalCount": 1
}


...

Sample request to query RAN for

...

ODUFunction, NRSectorCarrier, NRCellDU entities:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entities?targetFilter=/GNBDUFunctionODUFunction;/NRSectorCarrier;/NRCellDU

Response:

Code Block
languagetext
titleGET _______ multiple different domain entities Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "o-ran-smo-teiv-ran:NRSectorCarrierODUFunction": [
                {
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrierODUFunction=1"
                }
            ]
        },
        {
            "o-ran-smo-teiv-ran:NRCellDU": [
                {
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1,NRSectorCarrier=2"NRCellDU=1"
                }
            ]
        },
        {
             },"o-ran-smo-teiv-ran:NRCellDU": [
                {
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1,NRSectorCarrierNRCellDU=32"
                }
            ]
        },
        {
            "o-ran-smo-teiv-ran:GNBDUFunctionNRSectorCarrier": [
                {
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1,NRSectorCarrier=1"
                }
            ]
        },
        {
            "o-ran-smo-teiv-ran:NRCellDUNRSectorCarrier": [
                {
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1,NRCellDUNRSectorCarrier=12"
                },
            ]
   {     },
        {
      "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"                 },"o-ran-smo-teiv-ran:NRSectorCarrier": [
                {
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1,NRCellDUNRSectorCarrier=3"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/GNBDUFunctionODUFunction;/NRSectorCarrier;/NRCellDU"
    },
    "first": {
        "href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/GNBDUFunctionODUFunction;/NRSectorCarrier;/NRCellDU"
    },
    "prev": {
        "href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/GNBDUFunctionODUFunction;/NRSectorCarrier;/NRCellDU"
    },
    "next": {
        "href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/GNBDUFunctionODUFunction;/NRSectorCarrier;/NRCellDU"
    },
    "last": {
        "href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/GNBDUFunctionODUFunction;/NRSectorCarrier;/NRCellDU"
    },
    "totalCount": 76
}


...

Sample request to query RAN

...

ODUFunction filtered by gNBIdLength=23 and gNBId=1:

Code Block
languagexml
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entities?targetFilter=/GNBDUFunctionODUFunction&scopeFilter=%2FGNBDUFunction%2Fattributes%5B%40gNBIdLength%2FODUFunction%2Fattributes%5B%40gNBIdLength=23 and %40gNBId=1%5D
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/GNBDUFunctionODUFunction/entities?scopeFilter=%2FGNBDUFunction%2Fattributes%5B%40gNBIdLength%2FODUFunction%2Fattributes%5B%40gNBIdLength=23 and %40gNBId=1%5D

Response:

textGET _______
Code Block
language
title

Response

...

:

Code Block
languagetext
titleGET domain entities filtered by specific attributes Response
linenumberstrue
collapsetrue
{
         "gNBIditems": 1,[
        {
               "gNBIdLength"o-ran-smo-teiv-ran:ODUFunction": 23[
                    },{
                    "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunctionODUFunction=1"
                }
            ]
        }
    ],
    "self": {
        "href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/GNBDUFunctionODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/GNBDUFunction/attributes(gNBIdLength, gNBId)ODUFunction"
    },
    "first": {
        "href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/GNBDUFunctionODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/GNBDUFunction/attributes(gNBIdLength, gNBId)ODUFunction"
    },
    "prev": {
        "href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/GNBDUFunctionODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/GNBDUFunction/attributes(gNBIdLength, gNBId)ODUFunction"
    },
    "next": {
        "href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/GNBDUFunctionODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/GNBDUFunction/attributes(gNBIdLength, gNBId)ODUFunction"
    },
    "last": {
        "href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/GNBDUFunctionODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/GNBDUFunction/attributes(gNBIdLength, gNBId)ODUFunction"
    },
    "totalCount": 1
}


...