Supported filter options
Using the filtering options, it is possible to define more specific requests in case of several endpoints. To perform filtering, targetFilter and scopeFilter parameters can be used in the path.
Sample structure using target and scope filters:
GET https://<host>/topology-inventory/<API_VERSION>/domains/<domainName>?targetFilter=<targetFilter>&scopeFilter=<scopeFilter>
See Topology & Inventory API for all possible filter options and sample responses for each endpoint.
Querying simple entities
This functionality is supported by the following endpoints: /domains/{domainName}/entity-types/{entityTypeName}/entities
The entityTypeName is used as the root of the queries (from here referred as RootObject). Every other object, either in targetFilter or scopeFilter, has to relate to the RootObject. The queries are constructed starting from the RootObject and all other objects are joined to it. If there is no connection between the RootObject and the other object(s), the query is not constructed. The RootObject still can be retrieved and filtered using the /attributes.
Use case |
domain Name |
entityTypeName |
targetFilter |
scopeFilter |
Query result |
---|---|---|---|---|---|
To return the ids for all instances of
the entityTypeName used in the query.
|
RAN |
ODUFunction |
All ids of every
ODUFunction
|
||
To return all attributes of every
instance of the entityTypeName used
in the query.
|
RAN |
ODUFunction |
/attributes |
All ODUFunctions
with every attribute
|
|
To return every instance of the
entityTypeName used in the query, but
only the attribute that was
defined in the targetFilter
parameter. Note: The attribute must be
a valid field of the object.
|
RAN |
ODUFunction |
/attributes (gNBId) |
All gNBIds of every
ODUFunction
|
|
To return every instance of the
entityTypeName used in the query, but
only the attributes that were
defined in the targetFilter
parameter. Note: The attributes must
be separated by a comma “,” when
using parenthesis “()”.
|
RAN |
ODUFunction |
/attributes (gNBId, gNBIdLength) |
All gNBIds and
gNBIdLengths of
every ODUFunction
|
|
To return the ids for all instances of
the entityTypeName used in the query,
that matches the given
property in the scopeFilter
parameter.
|
RAN |
ODUFunction |
/sourceIds [contains (@item, ‘SubNetwork=Ireland’)] |
Unique set of ids
of ODUFunctions,
where sourceIds
contains
SubNetwork=Ireland
|
|
To return the ids for all instances of
the entityTypeName used in the query,
that matches the given attributes in
the scopeFilter parameter. Note: The
attributes must be separated by a
AND or OR”.
|
RAN |
ODUFunction |
/attributes [@gNBId Length=3 and @gNBId=111] |
Unique set of ids of
ODUFunctions,where
the gNBIdLength
equals 3 and the
gNBId equals 111
|
|
To return the ids for all instances of
the entityTypeName used in the query,
that satisfies one of
the conditions in the scopeFilter
parameter. A condition is a complete
unit of scopeFilter
represent OR.
parameter surrounded by square
brackets. Note: Multiple conditions
can be given in the scopeFilter
separated by a semicolon “;” to
represent AND, or a pipe symbol “|” to
|
RAN |
ODUFunction |
/attributes [@gNBId Length=3] | /sourceIds [contains (@item, ‘SubNetwork=Ireland’)] |
Unique set of ids of
ODUFunctions,
where the
gNBIdLength equals 3
or the sourceIds
contains an item
with
“SubNetwork=Ireland”
|
Querying connected entities
This functionality is achieved using associations and is supported by the following endpoints: /domains/{domainName}/entity-types/{entityTypeName}/entities
The entityTypeName is used as the root of the queries.
Use case |
domainName |
entityTypeName |
targetFilter |
scopeFilter |
Query result |
---|---|---|---|---|---|
To return the ids for all instances of
an entityTypeName related by an
association.
|
REL_OAM_RAN |
ODUFunction |
/managed-by-managedElement |
All ODUFunction entities that are managed
by any Managed Element.
|
|
To return the ids for all instances of
an entityTypeName related by an
association to another entity
specified by its id.
|
REL_OAM_RAN |
ODUFunction |
/managed-by-managedElement [@id = ‘urn:3gpp:dn: ManagedElement=1’] |
All ODUFunction entities that are managed
by the Managed Element
urn:3gpp:dn: ManagedElement=1.
|
|
To return the attributes for all
instances of an entityTypeName
related by one or more associations
to other entities specified by their
id.
|
REL_OAM_RAN |
ODUFunction |
/attributes |
/attributes [@enbId=1]; /managed-by-managedElement [@id=’urn:3gpp:dn: ManagedElement=1’] | /managed-by-managedElement [@id=’urn:3gpp:dn: ManagedElement=2’] |
All ODUFunction entities with enbId as 1
managed by the Managed Element
urn:3gpp:dn: ManagedElement=1 or
urn:3gpp:dn: ManagedElement=2
|
Querying entities for relationships
This functionality is supported by the following endpoints: /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships
The entityTypeName is used as the root of the queries.
Use case |
domainName |
entityTypeName |
entityId |
targetFilter |
scopeFilter |
Query result |
---|---|---|---|---|---|---|
To return the relationships for a
given entity specified by its id.
|
RAN |
ODUFunction |
urn:3gpp:dn: ManagedElement=1, ODUFunction=1 |
All relations for the ODUFunction with id
urn:3gpp:dn: ManagedElement=1, ODUFunction=1
|
||
To return specific relationships for a
given entity specified by its id.
|
REL_OAM_RAN |
ODUFunction |
urn:3gpp:dn: ManagedElement=1, ODUFunction=1 |
/MANAGEDELEMENT _MANAGES _ODUFUNCTION |
All MANAGEDELEMENT _MANAGES _ODUFUNCTION
relations for the ODUFunction with id
urn:3gpp:dn: ManagedElement=1, ODUFunction=1
|
|
To return specific relationships for
an entity specified by its id to
another entity using its id and
association.
|
REL_OAM_RAN |
ODUFunction |
urn:3gpp:dn: ManagedElement=1, ODUFunction=1 |
/managed-by-managedElement [@id = ‘urn:3gpp:dn: ManagedElement=1’] |
All MANAGEDELEMENT _MANAGES _ODUFUNCTION
relations for the ODUFunction with id
urn:3gpp:dn: ManagedElement=1, ODUFunction=1
where the managed element is
urn:3gpp:dn: ManagedElement=1.
|
Querying on relationships
This functionality is supported by the following endpoints: /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships
Here, the relationshipTypeName is used as the root of the queries.
Use case |
domainName |
relationship Type Name |
target Filter |
scopeFilter |
Query result |
---|---|---|---|---|---|
To return all relationships for a
specified relationship
|
REL_OAM_RAN |
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
All MANAGEDELEMENT_MANAGES_ORUFUNCTION
relationships
|
||
To return all relationships for a
specified relationship type with a
specified association to an entity.
|
REL_OAM_RAN |
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/managed-by-managedElement [@id=’urn:3gpp:dn: ManagedElement=1’] |
All MANAGEDELEMENT_MANAGES_ORUFUNCTION
relationships having an association
managed-by-managedElement to ManagedElement
urn:3gpp:dn: ManagedElement=1.
|
To get a relationship with a specific id, use: /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}
Example: Get the MANAGEDELEMENT_MANAGES_ORUFUNCTION relationship with id rel1 in the REL_OAM_RAN domain:
GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ORUFUNCTION/relationships/rel1
Querying on classifiers and decorators
This functionality is supported by the following endpoints
**/domains/{domainName}/entities**
Use case |
domain Name |
target Filter |
scopeFilter |
Query result |
---|---|---|---|---|
Return all related entity IDs that are
exactly matched with the specified
classifier with given domain name.
|
RAN |
/classifiers[@item = ‘odu-function-model :Indoor’] |
All the entity IDs that are classified
with “odu-function-model:Indoor”
in RAN domain.
|
|
Return all related entity IDs that are
partially matched for the given
classifier with given domain name.
|
RAN |
/classifiers[contains (@item, ‘Ind’)] |
All the entity IDs that are partially
matched with “Ind” in RAN domain.
|
|
Return all related entity IDs that are
exactly matched with the key-value pair
that specified decorators
with given domain name.
|
RAN |
/decorators[ @odu-function-model :textdata = ‘Stockholm’] |
All the entity IDs that are exactly
matched with
“odu-function-model:textdata =
‘Stockholm’” in RAN domain.
|
|
Return all related entity IDs that are
exactly matched with key parameter
where the value of the decorator is
unknown with given domain name.
|
RAN |
/decorators[contains( @odu-function-model :textdata, “”)] |
All the entity IDs that are exactly
matched with
“odu-function-model:textdata as key
of the decorator in RAN domain.
|
Example: Get the decorators odu-function-model:textdata = ‘Stockholm’ in the RAN domain
GET https://<eic-host>/topology-inventory/<API_VERSION>/domains/REL_OAM_RAN/entities?scopeFilter=/decorators[@o-ran-smo-teiv-ran:textdata = 'Stockholm']
Result
{
"items": [
{
"o-ran-smo-teiv-ran:ODUFunction": [
{
"id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=13,ODUFunction=13"
}
]
},
{
"o-ran-smo-teiv-ran:ODUFunction": [
{
"id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,ODUFunction=14"
}
]
},
{
"o-ran-smo-teiv-ran:ODUFunction": [
{
"id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=16,ODUFunction=16"
}
]
}
],
"self": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/decorators[@o-ran-smo-teiv-ran:textdata = 'Stockholm']"
},
"first": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/decorators[@o-ran-smo-teiv-ran:textdata = 'Stockholm']"
},
"prev": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/decorators[@o-ran-smo-teiv-ran:textdata = 'Stockholm']"
},
"next": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/decorators[@o-ran-smo-teiv-ran:textdata = 'Stockholm']"
},
"last": {
"href": "/domains/RAN/entities?offset=0&limit=500&scopeFilter=/decorators[@o-ran-smo-teiv-ran:textdata = 'Stockholm']"
},
"totalCount": 3
}
**/domains/{domainName}/entity-types/{entityName}/entities**
Use case |
entityName |
relationship TypeName |
targetFilter |
scopeFilter |
Query result |
---|---|---|---|---|---|
Return all related entity IDs and
classifiers.
|
NRCellDU |
/classifiers |
All NRCellDU IDs and classifiers. |
||
Return all related entity IDs and
decorators.
|
NRCellDU |
/decorators |
All NRCellDU IDs and decorators. |
||
Return all related entity IDs
that are an exact match for the
given classifiers and decorators.
|
NRCellDU |
/classifiers[@item = ‘odu-function-model:Indoor’];
/decorators[@odu-function-model:textdata =
‘Stockholm’]
|
All NRCellDU IDs where key of the decorator is
“odu-function-model:textdata” and the value
of the decorator is ‘Stockholm’ and classifiers
exactly contain “odu-function-model:Indoor”.
|
||
Return all related entity IDs and
classifiers that are partially
matched for the given classifier.
|
NRCellDU |
/classifiers |
/classifiers[contains(@item, ‘Ind’)] |
All NRCellDU IDs and classifiers partially
contain the text “Ind”.
|
|
Return all related entity IDs and
decorators where the key is an
exact match and the value is a
partial match.
|
NRCellDU |
/decorators |
/decorators[contains(@odu-function-model:textdata,
‘Stoc’)]
|
All NRCellDU IDs and where key of the decorator
is “odu-function-model:textdata” and the
value of the decorator partially contains
‘Stoc’
|
|
Return all related entity IDs and
decorators where the key is an
exact match and the value is a
partial match.
|
NRCellDU |
/classifiers; /decorators |
/classifiers[contains(@item, ‘Ind’)];
/decorators[contains(@odu-function-model:textdata,
‘Stoc’)]
|
All NRCellDU IDs and decorators where the key
of the decorator is
“odu-function-model:textdata”, the value of
the decorator partially contains ‘Stoc’, and
the classifiers partially contain “Ind”.
|
Example: Get the entities and classifiers where the classifier contains the text Indoor
GET https://<eic-host>/topology-inventory/<API_VERSION>/domains/RAN/entity-types/NRCellDU/entities?targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item, 'Rural')]
Result
{
"items": [
{
"o-ran-smo-teiv-ran:NRCellDU": [
{
"classifiers": [
"o-ran-smo-teiv-ran:Rural"
],
"id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=19,ODUFunction=19,NRCellDU=93"
}
]
}
],
"self": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item, 'Rural')]"
},
"first": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item, 'Rural')]"
},
"prev": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item, 'Rural')]"
},
"next": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item, 'Rural')]"
},
"last": {
"href": "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item, 'Rural')]"
},
"totalCount": 1
}
**/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships**
Use case |
entity Name |
relationshipTypeName |
targetFilter |
scopeFilter |
---|---|---|---|---|
Return all related
relationship IDs and
classifiers.
|
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/classifiers |
||
Return all related
relationship IDs and
decorators.
|
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/decorators |
||
Return related relationship
IDs that match the
classifier and decorator.
|
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/classifiers[@item = ‘odu-function-model :Indoor’]; /decorators[@odu-function -model:textdata = ‘Stockholm’] |
||
Return related relationship
IDs and classifiers that
are partially matched
for the classifier.
|
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/classifiers |
/classifiers[contains (@item, ‘Ind’)] |
|
Return related relationship
IDs and decorators where
the key matches exactly and
the value matches
partially.
|
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/decorators |
/decorators[contains (@odu-function-model: textdata, ‘Stock’)] |
|
Return related relationship
IDs, decorators, and
classifiers where decorator
key is exact and value
partially matches, and
classifiers partially match
the parameters.
|
MANAGEDELEMENT _MANAGES _ORUFUNCTION |
/classifiers
/decorators
|
/classifiers[contains (@item, ‘Ind’)]; /decorators[contains (@odu-function-model: textdata, ‘Stock’)] |
Result
{
"items": [
{
"o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [
{
"bSide": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=10,ODUFunction=10",
"aSide": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=10",
"classifiers": [
"o-ran-smo-teiv-ran:Rural",
"o-ran-smo-teiv-ran:Weekend"
],
"id": "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=661A89AD3C2702233CD9E96E97E738C05C35EC5FDF32DC78D149B773726350067315B72448D004C938BCD0263F0C4BCCC8A5F9CDD145B9B740983D1523664328"
}
]
}
],
"self": {
"href": "/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships?offset=0&limit=500&scopeFilter=/classifiers[@item = 'o-ran-smo-teiv-ran:Rural']&targetFilter=/classifiers"
},
"first": {
"href": "/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships?offset=0&limit=500&scopeFilter=/classifiers[@item = 'o-ran-smo-teiv-ran:Rural']&targetFilter=/classifiers"
},
"prev": {
"href": "/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships?offset=0&limit=500&scopeFilter=/classifiers[@item = 'o-ran-smo-teiv-ran:Rural']&targetFilter=/classifiers"
},
"next": {
"href": "/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships?offset=0&limit=500&scopeFilter=/classifiers[@item = 'o-ran-smo-teiv-ran:Rural']&targetFilter=/classifiers"
},
"last": {
"href": "/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships?offset=0&limit=500&scopeFilter=/classifiers[@item = 'o-ran-smo-teiv-ran:Rural']&targetFilter=/classifiers"
},
"totalCount": 1
}