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, 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.
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:
Schema for "Create classifiers and decorators schema":
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.
NOTE: scopeFileter value is url encoded
Sample request to fetch a list of all domains in TEIV: GET https://<host>/topology-inventory/<API_VERSION>/domains Response:
GET domains Response
{
"items": [
{
"name": "CLOUD",
"entityTypes": {
"href": "/domains/CLOUD/entity-types"
},
"relationshipTypes": {
"href": "/domains/CLOUD/relationship-types"
}
},
{
"name": "EQUIPMENT",
"entityTypes": {
"href": "/domains/EQUIPMENT/entity-types"
},
"relationshipTypes": {
"href": "/domains/EQUIPMENT/relationship-types"
}
},
{
"name": "OAM",
"entityTypes": {
"href": "/domains/OAM/entity-types"
},
"relationshipTypes": {
"href": "/domains/OAM/relationship-types"
}
},
{
"name": "RAN",
"entityTypes": {
"href": "/domains/RAN/entity-types"
},
"relationshipTypes": {
"href": "/domains/RAN/relationship-types"
}
},
{
"name": "REL_CLOUD_RAN",
"entityTypes": {
"href": "/domains/REL_CLOUD_RAN/entity-types"
},
"relationshipTypes": {
"href": "/domains/REL_CLOUD_RAN/relationship-types"
}
},
{
"name": "REL_EQUIPMENT_RAN",
"entityTypes": {
"href": "/domains/REL_EQUIPMENT_RAN/entity-types"
},
"relationshipTypes": {
"href": "/domains/REL_EQUIPMENT_RAN/relationship-types"
}
},
{
"name": "REL_OAM_CLOUD",
"entityTypes": {
"href": "/domains/REL_OAM_CLOUD/entity-types"
},
"relationshipTypes": {
"href": "/domains/REL_OAM_CLOUD/relationship-types"
}
},
{
"name": "REL_OAM_RAN",
"entityTypes": {
"href": "/domains/REL_OAM_RAN/entity-types"
},
"relationshipTypes": {
"href": "/domains/REL_OAM_RAN/relationship-types"
}
},
{
"name": "TEIV",
"entityTypes": {
"href": "/domains/TEIV/entity-types"
},
"relationshipTypes": {
"href": "/domains/TEIV/relationship-types"
}
}
],
"self": {
"href": "/domains?offset=0&limit=500"
},
"first": {
"href": "/domains?offset=0&limit=500"
},
"prev": {
"href": "/domains?offset=0&limit=500"
},
"next": {
"href": "/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: GET https://<host>/topology-inventory/<API_VERSION>/schemas Response:
GET schemas Response
{
"items": [
{
"name": "_3gpp-common-yang-extensions",
"domain": "",
"revision": "2019-06-23",
"content": {
"href": "/schemas/_3gpp-common-yang-extensions/content"
}
},
{
"name": "_3gpp-common-yang-types",
"domain": "",
"revision": "2022-07-26",
"content": {
"href": "/schemas/_3gpp-common-yang-types/content"
}
},
{
"name": "ietf-geo-location",
"domain": "",
"revision": "2022-02-11",
"content": {
"href": "/schemas/ietf-geo-location/content"
}
},
{
"name": "ietf-inet-types",
"domain": "",
"revision": "2013-07-15",
"content": {
"href": "/schemas/ietf-inet-types/content"
}
},
{
"name": "ietf-yang-types",
"domain": "",
"revision": "2013-07-15",
"content": {
"href": "/schemas/ietf-yang-types/content"
}
},
{
"name": "o-ran-smo-teiv-cloud",
"domain": "CLOUD",
"revision": "2024-05-02",
"content": {
"href": "/schemas/o-ran-smo-teiv-cloud/content"
}
},
{
"name": "o-ran-smo-teiv-common-yang-extensions",
"domain": "",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-common-yang-extensions/content"
}
},
{
"name": "o-ran-smo-teiv-common-yang-types",
"domain": "",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-common-yang-types/content"
}
},
{
"name": "o-ran-smo-teiv-equipment",
"domain": "EQUIPMENT",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-equipment/content"
}
},
{
"name": "o-ran-smo-teiv-oam",
"domain": "OAM",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-oam/content"
}
},
{
"name": "o-ran-smo-teiv-ran",
"domain": "RAN",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-ran/content"
}
},
{
"name": "o-ran-smo-teiv-rel-cloud-ran",
"domain": "REL_CLOUD_RAN",
"revision": "2024-05-02",
"content": {
"href": "/schemas/o-ran-smo-teiv-rel-cloud-ran/content"
}
},
{
"name": "o-ran-smo-teiv-rel-equipment-ran",
"domain": "REL_EQUIPMENT_RAN",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-rel-equipment-ran/content"
}
},
{
"name": "o-ran-smo-teiv-rel-oam-cloud",
"domain": "REL_OAM_CLOUD",
"revision": "2024-05-02",
"content": {
"href": "/schemas/o-ran-smo-teiv-rel-oam-cloud/content"
}
},
{
"name": "o-ran-smo-teiv-rel-oam-ran",
"domain": "REL_OAM_RAN",
"revision": "2024-05-24",
"content": {
"href": "/schemas/o-ran-smo-teiv-rel-oam-ran/content"
}
}
],
"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": 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.
GET https://<host>/topology-inventory/<API_VERSION>/schemas?domain=.*CLOUD.* Response:
GET CLOUD Schema Response
{
"items": [
{
"name": "o-ran-smo-teiv-cloud",
"domain": "CLOUD",
"revision": "2024-05-02",
"content": {
"href": "/schemas/o-ran-smo-teiv-cloud/content"
}
},
{
"name": "o-ran-smo-teiv-rel-cloud-ran",
"domain": "REL_CLOUD_RAN",
"revision": "2024-05-02",
"content": {
"href": "/schemas/o-ran-smo-teiv-rel-cloud-ran/content"
}
},
{
"name": "o-ran-smo-teiv-rel-oam-cloud",
"domain": "REL_OAM_CLOUD",
"revision": "2024-05-02",
"content": {
"href": "/schemas/o-ran-smo-teiv-rel-oam-cloud/content"
}
}
],
"self": {
"href": "/schemas?offset=0&limit=500&domain=.*CLOUD.*"
},
"first": {
"href": "/schemas?offset=0&limit=500&domain=.*CLOUD.*"
},
"prev": {
"href": "/schemas?offset=0&limit=500&domain=.*CLOUD.*"
},
"next": {
"href": "/schemas?offset=0&limit=500&domain=.*CLOUD.*"
},
"last": {
"href": "/schemas?offset=0&limit=500&domain=.*CLOUD.*"
},
"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.
GET https://<host>/topology-inventory/<API_VERSION>/schemas/o-ran-smo-teiv-oam/content Response:
GET OAM Schema Content Response
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: GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types Response:
GET domain entity types Response
{
"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: GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities Response:
GET entities from domain Response
{
"items": [
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"id": "urn:oran:smo:teiv:AntennaModule=1"
}
]
},
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"id": "urn:oran:smo:teiv:AntennaModule=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: GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1 Response:
GET entity from domain by id Response
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"decorators": {},
"classifiers": [],
"attributes": {
"mechanicalAntennaTilt": 10,
"mechanicalAntennaBearing": 50,
"positionWithinSector": "Unknown",
"geo-location": {
"height": 3000,
"latitude": 41.73297,
"longitude": -73.007696
},
"antennaModelNumber": "1",
"totalTilt": 14,
"antennaBeamWidth": [
35,
23,
21
],
"electricalAntennaTilt": 2
},
"id": "urn:oran:smo:teiv:AntennaModule=1",
"sourceIds": [
"urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1",
"urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1,AntennaSubunit=1",
"urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1"
]
}
]
}
Sample request to fetch all relationships from a specific AntennaModule from EQUIPMENT by id: GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships Response:
GET entity relationships from domain by id Response
{
"items": [
{
"o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
{
"bSide": "urn:oran:smo:teiv:Site=1",
"aSide": "urn:oran:smo:teiv:AntennaModule=1",
"id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1"
}
]
}
],
"self": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
},
"first": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
},
"prev": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
},
"next": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
},
"last": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities/urn:oran:smo:teiv:AntennaModule=1/relationships?offset=0&limit=500"
},
"totalCount": 1
}
Sample request to fetch all relationship types in EQUIPMENT: GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types Response:
GET all domain relationship types Response
{
"items": [
{
"name": "ANTENNAMODULE_INSTALLED_AT_SITE",
"relationships": {
"href": "/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_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": 1
}
Sample request to fetch ANTENNAMODULE_INSTALLED_AT_SITE relationships from EQUIPMENT: GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/relationship-types/ANTENNAMODULE_INSTALLED_AT_SITE/relationships Response:
GET specific relationships from domain Response
{
"items": [
{
"o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
{
"bSide": "urn:oran:smo:teiv:Site=1",
"aSide": "urn:oran:smo:teiv:AntennaModule=1",
"id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1"
}
]
},
{
"o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
{
"bSide": "urn:oran:smo:teiv:Site=2",
"aSide": "urn:oran:smo:teiv:AntennaModule=2",
"id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=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: 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:
GET a specific relationship from domain by id Response
{
"o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
{
"decorators": {},
"bSide": "urn:oran:smo:teiv:Site=1",
"aSide": "urn:oran:smo:teiv:AntennaModule=1",
"classifiers": [],
"id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=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: 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:
GET domain entities and attributes Response
{
"items": [
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"attributes": {
"mechanicalAntennaTilt": 10,
"mechanicalAntennaBearing": 50,
"positionWithinSector": "Unknown",
"geo-location": {
"height": 3000,
"latitude": 41.73297,
"longitude": -73.007696
},
"antennaModelNumber": "1",
"totalTilt": 14,
"antennaBeamWidth": [
35,
23,
21
],
"electricalAntennaTilt": 2
},
"id": "urn:oran:smo:teiv:AntennaModule=1"
}
]
},
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"attributes": {
"mechanicalAntennaTilt": 12,
"mechanicalAntennaBearing": 45,
"positionWithinSector": "Unknown",
"geo-location": {
"height": 2500,
"latitude": 43.75443,
"longitude": -71.096454
},
"antennaModelNumber": "2",
"totalTilt": 15,
"antennaBeamWidth": [
45,
32,
21
],
"electricalAntennaTilt": 1
},
"id": "urn:oran:smo:teiv:AntennaModule=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: 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:
GET get domain entities and specific attributes Response
{
"items": [
{
"o-ran-smo-teiv-cloud:CloudifiedNF": [
{
"attributes": {
"name": "CloudifiedNF-1"
},
"id": "urn:oran:smo:teiv:CloudifiedNF:1"
}
]
}
],
"self": {
"href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/attributes(name)"
},
"first": {
"href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/attributes(name)"
},
"prev": {
"href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/attributes(name)"
},
"next": {
"href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/attributes(name)"
},
"last": {
"href": "/domains/CLOUD/entity-types/CloudifiedNF/entities?offset=0&limit=500&targetFilter=/attributes(name)"
},
"totalCount": 1
}
Sample request to query ODUFunction entities and the gNBId, gNBIdLength attributes from RAN: GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entities?targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/ODUFunction/entities?targetFilter=/attributes(gNBId, gNBIdLength) Response:
GET domain entities and multiple attributes Response
{
"items": [
{
"o-ran-smo-teiv-ran:ODUFunction": [
{
"attributes": {
"gNBId": 1,
"gNBIdLength": 23
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1"
}
]
}
],
"self": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
},
"first": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
},
"prev": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
},
"next": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
},
"last": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction/attributes(gNBId, gNBIdLength)"
},
"totalCount": 1
}
Sample request to query RAN for ODUFunction, NRSectorCarrier, NRCellDU entities: GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entities?targetFilter=/ODUFunction;/NRSectorCarrier;/NRCellDU Response:
GET multiple different domain entities Response
{
"items": [
{
"o-ran-smo-teiv-ran:ODUFunction": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
},
{
"o-ran-smo-teiv-ran:NRSectorCarrier": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRSectorCarrier=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRSectorCarrier": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRSectorCarrier=2"
}
]
},
{
"o-ran-smo-teiv-ran:NRSectorCarrier": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRSectorCarrier=3"
}
]
}
],
"self": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction;/NRSectorCarrier;/NRCellDU"
},
"first": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction;/NRSectorCarrier;/NRCellDU"
},
"prev": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction;/NRSectorCarrier;/NRCellDU"
},
"next": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction;/NRSectorCarrier;/NRCellDU"
},
"last": {
"href": "/domains/RAN/entities?offset=0&limit=500&targetFilter=/ODUFunction;/NRSectorCarrier;/NRCellDU"
},
"totalCount": 6
}
Sample request to query RAN ODUFunction filtered by gNBIdLength=23 and gNBId=1: GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entities?targetFilter=/ODUFunction&scopeFilter=%2FODUFunction%2Fattributes%5B%40gNBIdLength=23 and %40gNBId=1%5D
or
GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/ODUFunction/entities?scopeFilter=%2FODUFunction%2Fattributes%5B%40gNBIdLength=23 and %40gNBId=1%5D Response:
GET domain entities filtered by specific attributes Response
{
"items": [
{
"o-ran-smo-teiv-ran:ODUFunction": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1"
}
]
}
],
"self": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/ODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/ODUFunction"
},
"first": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/ODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/ODUFunction"
},
"prev": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/ODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/ODUFunction"
},
"next": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/ODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/ODUFunction"
},
"last": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/ODUFunction/attributes[@gNBIdLength=23 and @gNBId=1]&targetFilter=/ODUFunction"
},
"totalCount": 1
}
Querying Simple Entities
This functionality is supported by the following endpoints:
/domains/{domain}/entity-types/{entityType}/entities
Get all instances of {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities Response:
Get all instances of NRCellDU in RAN
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500"
},
"totalCount": 2
}
Get attributes of all instances of {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?targetFilter=/attributes Response:
Get attributes of all instances of NRCellDU in RAN
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"attributes": {
"nCI": 24577,
"nRTAC": 40,
"nRPCI": 400,
"cellLocalId": 1
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"attributes": {
"nCI": 24578,
"nRTAC": 50,
"nRPCI": 500,
"cellLocalId": 2
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes"
},
"totalCount": 2
}
Get an attribute of all instances of {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?targetFilter=/attributes(cellLocalId) Response:
Get an attribute of all instances of NRCellDU in RAN
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"attributes": {
"cellLocalId": 1
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"attributes": {
"cellLocalId": 2
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(cellLocalId)"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(cellLocalId)"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(cellLocalId)"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(cellLocalId)"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(cellLocalId)"
},
"totalCount": 2
}
Get 2 attributes of all instances of {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?targetFilter=/attributes(nRTAC, nRPCI) Response:
Get 2 attributes of all instances of NRCellDU in RAN
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"attributes": {
"nRTAC": 40,
"nRPCI": 400
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"attributes": {
"nRTAC": 50,
"nRPCI": 500
},
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(nRTAC, nRPCI)"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(nRTAC, nRPCI)"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(nRTAC, nRPCI)"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(nRTAC, nRPCI)"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/attributes(nRTAC, nRPCI)"
},
"totalCount": 2
}
Get instances using a partial match of sourceIds from {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?scopeFilter=%2FsourceIds%5Bcontains%28%40item%2C%27ODUFunction%3D1%27%29%5D Response:
Get instances using a partial match of sourceIds from NRCellDU in RAN
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/sourceIds[contains(@item,'ODUFunction=1')]"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/sourceIds[contains(@item,'ODUFunction=1')]"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/sourceIds[contains(@item,'ODUFunction=1')]"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/sourceIds[contains(@item,'ODUFunction=1')]"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/sourceIds[contains(@item,'ODUFunction=1')]"
},
"totalCount": 2
}
Get instances with matching attributes from {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?scopeFilter=%2Fattributes%5B%40nRTAC%3D40and%40nRPCI%3D400%5D Response:
Get instances with matching attributes from NRCellDU in RAN
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]"
},
"totalCount": 1
}
Get instances with matching attributes or partial sourceIds from {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?scopeFilter=%2Fattributes%5B%40nRTAC%3D40and%40nRPCI%3D400%5D%7C%2FsourceIds%5Bcontains%28%40item%2C%27ODUFunction%3D1%27%29%5D Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
},
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=2"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]|/sourceIds[contains(@item,'ODUFunction=1')]"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]|/sourceIds[contains(@item,'ODUFunction=1')]"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]|/sourceIds[contains(@item,'ODUFunction=1')]"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]|/sourceIds[contains(@item,'ODUFunction=1')]"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400]|/sourceIds[contains(@item,'ODUFunction=1')]"
},
"totalCount": 2
}
Get instances with matching attributes and partial sourceIds from {entityType} in {domain} GET https://<host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?scopeFilter=%2Fattributes%5B%40nRTAC%3D40and%40nRPCI%3D400%5D%3B%2FsourceIds%5Bcontains%28%40item%2C%27ODUFunction%3D1%27%29%5D Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"id": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1,NRCellDU=1"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400];/sourceIds[contains(@item,'ODUFunction=1')]"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400];/sourceIds[contains(@item,'ODUFunction=1')]"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400];/sourceIds[contains(@item,'ODUFunction=1')]"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400];/sourceIds[contains(@item,'ODUFunction=1')]"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&scopeFilter=/attributes[@nRTAC=40and@nRPCI=400];/sourceIds[contains(@item,'ODUFunction=1')]"
},
"totalCount": 1
}
Querying connected entities
This functionality is achieved using associations and is supported by the following endpoints:
/domains/{domain}/entity-types/{entityType}/entities
and
/domains/{domainName}/entities
(Currently not working due to a bug) Get all instances based on general relationship scopeFilter GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?scopeFilter=/serviced-antennaCapability Response:
Get all instances based on specific relationship scopeFilter GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?scopeFilter=%2Fserviced-antennaCapability%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3AAntennaCapability%3D1%27%5D Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"id": "urn:oran:smo:teiv:AntennaModule=1"
}
]
}
],
"self": {
"href": "/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"first": {
"href": "/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"prev": {
"href": "/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"next": {
"href": "/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"last": {
"href": "/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"totalCount": 1
}
(Currently not working due to a bug) Get all instances based on multiple relationship scopeFilters GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_EQUIPMENT_RAN/entity-types/AntennaModule/entities?scopeFilter=%2Fattributes%5B%40totalTilt%3D14%5D%3B%2Fserviced-antennaCapability%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3AAntennaCapability%3D1%27%5D%7C%2Fserviced-antennaCapability%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3AAntennaCapability%3D2%27%5D&targetFilter=/attributes Response:
(Currently not working due to a bug) Get all instances based on multiple relationship scopeFilters GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_EQUIPMENT_RAN/entity-types/AntennaCapability/entities?scopeFilter=%2Fserving-antennaModule%2Fattributes%5BwithinMeters%28%40geo-location%2C%27POINT%28%20-73.007696%2041.73297%29%27%2C%203000%29%5D&targetFilter=/attributes Response:
(Currently not working due to a bug) Get all instances in a domain based on general scopeFilter GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?scopeFilter=/serviced-antennaCapability Response:
Get all instances in a domain based on specific scopeFilter GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?scopeFilter=%2Fserviced-antennaCapability%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3AAntennaCapability%3D1%27%5D&targetFilter=/AntennaModule Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"id": "urn:oran:smo:teiv:AntennaModule=1"
}
]
}
],
"self": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"first": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"prev": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"next": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"last": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&targetFilter=/AntennaModule&scopeFilter=/serviced-antennaCapability[@id='urn:oran:smo:teiv:AntennaCapability=1']"
},
"totalCount": 1
}
(Currently not working due to a bug) Get all instances in a domain based on multiple relationships scopeFilters GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?scopeFilter=%2Fserviced-antennaCapability%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3AAntennaCapability%3D1%27%5D%7C%2Fserviced-antennaCapability%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3AAntennaCapability%3D2%27%5D%3B%2Finstalled-at-site%5B%40id%3D%27urn%3Aoran%3Asmo%3Ateiv%3ASite%3D1%27%5D&targetFilter=/attributes Response:
(Currently not working due to a bug) Get all instances in a domain based on multiple relationships scopeFilters Copy GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?scopeFilter=%2Fgrouped-by-sector%2Fattributes%5BsectorId%3D1%5D Response:
Querying entities for relationships
This functionality is supported by the following endpoints:
/domains/{domain}/entity-types/{entityType}/entities/{entityId}/relationships
Get all relationships for an entity by id GET https://<host>/topology-inventory/<API_VERSION>/domains/TEIV/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-rel-oam-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
{
"bSide": "urn:oran:smo:teiv:CloudifiedNF:1",
"aSide": "urn:3gpp:dn:ManagedElement=NR01",
"id": "urn:o-ran:smo-teiv-rel-oam-cloud:1"
}
]
},
{
"o-ran-smo-teiv-rel-oam-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
{
"bSide": "urn:3gpp:dn:ManagedElement=NR01",
"aSide": "urn:oran:smo:teiv:NFDeployment:1",
"id": "urn:oran:smo:teiv:NFDEPLOYMENT_SERVES_MANAGEDELEMENT=1"
}
]
},
{
"o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [
{
"bSide": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1",
"aSide": "urn:3gpp:dn:ManagedElement=NR01",
"id": "urn:oran:smo:teiv:MANAGEDELEMENT_MANAGES_ODUFUNCTION=1"
}
]
}
],
"self": {
"href": "/domains/TEIV/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500"
},
"first": {
"href": "/domains/TEIV/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500"
},
"prev": {
"href": "/domains/TEIV/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500"
},
"next": {
"href": "/domains/TEIV/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500"
},
"last": {
"href": "/domains/TEIV/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500"
},
"totalCount": 3
}
Get specific relationships for an entity by id GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?targetFilter=/MANAGEDELEMENT_MANAGES_ODUFUNCTION Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [
{
"bSide": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1",
"aSide": "urn:3gpp:dn:ManagedElement=NR01",
"id": "urn:oran:smo:teiv:MANAGEDELEMENT_MANAGES_ODUFUNCTION=1"
}
]
}
],
"self": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&targetFilter=/MANAGEDELEMENT_MANAGES_ODUFUNCTION"
},
"first": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&targetFilter=/MANAGEDELEMENT_MANAGES_ODUFUNCTION"
},
"prev": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&targetFilter=/MANAGEDELEMENT_MANAGES_ODUFUNCTION"
},
"next": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&targetFilter=/MANAGEDELEMENT_MANAGES_ODUFUNCTION"
},
"last": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&targetFilter=/MANAGEDELEMENT_MANAGES_ODUFUNCTION"
},
"totalCount": 1
}
Get specific relationships for an entity by id GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?scopeFilter=%2Fmanaged-oduFunction%5B%40id%3D%27urn%3A3gpp%3Adn%3AManagedElement%3DNR01%2CODUFunction%3D1%27%5D Response:
Click here to expand...
{
"items": [
{
"o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [
{
"bSide": "urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1",
"aSide": "urn:3gpp:dn:ManagedElement=NR01",
"id": "urn:oran:smo:teiv:MANAGEDELEMENT_MANAGES_ODUFUNCTION=1"
}
]
}
],
"self": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&scopeFilter=/managed-oduFunction[@id='urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1']"
},
"first": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&scopeFilter=/managed-oduFunction[@id='urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1']"
},
"prev": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&scopeFilter=/managed-oduFunction[@id='urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1']"
},
"next": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&scopeFilter=/managed-oduFunction[@id='urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1']"
},
"last": {
"href": "/domains/REL_OAM_RAN/entity-types/ManagedElement/entities/urn:3gpp:dn:ManagedElement=NR01/relationships?offset=0&limit=500&scopeFilter=/managed-oduFunction[@id='urn:3gpp:dn:ManagedElement=NR01,ODUFunction=1']"
},
"totalCount": 1
}
Querying on relationships
This functionality is supported by the following endpoints:
/domains/{domain}/relationship-types/{relationshipType}/relationships
Get all relationships for a specified relationship GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_OAM_CLOUD/relationship-types/MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF/relationships Response: