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.
Query grammar
Grammar element |
Syntax |
Applies to |
Description |
|---|---|---|---|
Path navigation |
XPath-like structure using /
for hierarchy navigation
|
targetFilter
scopeFilter
|
Specifies hierarchical
path to attributes,
sourceIds, classifiers,
decorators, or metadata
|
Attribute selection |
/entity/attributes(attr1,attr2) |
targetFilter |
Selects specific
attributes for
retrieval
|
Conditional brackets |
[] |
scopeFilter |
Encloses filtering
conditions
|
@ Notation |
@attribute |
scopeFilter |
Mandatory prefix for
all attribute
references
in conditional brackets
|
@item |
@item |
scopeFilter |
item is a Reserved key
word to iterate the
items in the list of
sourceIds or
classifiers
|
Logical AND |
and |
scopeFilter |
Combines multiple
conditions within the
same container for
example, it can be used
only within the
conditional brackets
|
Logical OR |
or |
scopeFilter |
Specifies alternative
values within the same
container, for example,
it can be used only
within the conditional
brackets
|
Union (|) |
filter1 | filter2 |
scopeFilter |
Combines results from
multiple filters that
apply to the same or
different containers
|
Multi-filter (;) |
filter1; filter2 |
targetFilter
scopeFilter
|
Applies multiple
independent filters in
sequence, each of which
can target a different
container (attributes,
sourceIds, classifiers,
decorators, or
metadata)
|
contains() |
[contains @attribute,’text’)] |
scopeFilter |
Matches if attribute
contains the specified
substring
(case-sensitive)
|
Geo-location grammar
Grammar element |
Syntax |
Applies to |
Description |
|---|---|---|---|
POINT |
POINT(lon lat) |
scopeFilter |
Specifies geographic
coordinates
(longitude, latitude)
|
POLYGON |
POLYGON((
lon1 lat1, lon2 lat2, …,
lonN latN))
|
scopeFilter |
Specifies an area as a
closed shape defined by
multiple
longitude/latitude
pairs
|
MULTIPOLYGON |
MULTIPOLYGON((
(lon1 lat1, lon2 lat2, …,
lonN latN)), ((lon1 lat1,
lon2 lat2, …, lonN latN)))
|
scopeFilter |
Specifies a set of
polygons
|
withinMeters() |
withinMeters(@geo-location,
POINT(lon lat), distance in
meters)
|
scopeFilter |
Filters entities within
a specified distance
(in meters) of a
geographic point
|
coveredBy() |
coveredBy(@geo-location,
‘POLYGON((…))’)
|
scopeFilter |
Filters entities whose
geo-location is inside
the specified polygon
or multipolygon area
|
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 the metadata of every
instance of the entitytypeName used in
the query.
|
RAN |
ODUFunction |
/metadata |
All ODUFunctions
with metadata
|
|
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 partially 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 metadata for all
instances of the entityTypeName used
in the query, that matches the given
property in the scopeFilter
parameter
|
RAN |
ODUFunction |
/metadata [@reliabilityIndicator =’OK’] |
Unique set of
metadata of
ODUFunctions, where
reliabilityIndicator
equals OK
|
|
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
|
To return the ids for all instances of
an entityTypeName related by an
association to other entities whose
attribute matches the given
scopeFilter parameter.
|
RAN |
NRCellDU |
/serving-antennaModule/ attributes[withinMeters (@geo-location, ‘POINT( 40.800533 -73.958444)’, 500.5)] |
All NRCellDU entities served by AntennaModule
entities within 500.5 meters from a point with
latitude and longitude values of 40.800533
and -73.958444 respectively.
|
|
To return the ids for all instances of
an entityTypeName related by an
association to other entities whose
classifiers/decorators/sourceId
matches the given scopeFilter
parameter
|
RAN |
NRCellDU |
/serving-antennaModule/ /classifiers[@item= ‘test-app-module:Rural’] |
All NRCellDU entities served by AntennaModule
whose classifiers match test-app-module:Rural.
|
/domains/{domainName}/entities
Use case |
domainName |
targetFilter |
scopeFilter |
Query result |
To return the ids of all entities in a
given domain related by an association
|
RAN |
/managed-by-managedElement |
All entities that are managed by any
ManagedElement.
|
|
To return the ids of all entities in a
given domain related by an association
to another entity specified by its
id.
|
RAN |
/ODUFunction |
/managed-by-managedElement [@id = ‘urn :3gpp :dn: ManagedElement=1’] |
All ODUFunction entities that are managed by
the ManagedElement
urn:3gpp:dn: ManagedElement=1.
|
To return the attributes for all
entities in a given domain related by
one or more associations to other
entities specified by their id.
|
RAN |
/attributes |
/managed-by-managedElement [@id= ‘urn: 3gpp:dn: ManagedElement=1’] | /managed-by-managedElement [@id=’urn: 3gpp:dn: ManagedElement=2’] ; /provided-nrCellDu [@id=’urn: 3gpp :dn:ManagedElement=1, NRCellDU=2’] |
All entities managed by the
ManagedElement urn:3gpp:dn:ManagedElement=1
or urn:3gpp:dn: ManagedElement=2, and
provides NRCellDU urn:3gpp:dn:
ManagedElement=1, NRCellDU=2.
|
To return the ids of all entities in a
given domain related by one or more
associations to other entities whose
attributes match a specified
scopeFilter query.
|
EQUIPMENT |
/grouped-by-sector/attributes[sectorId=1] |
All entities that grouped by a Sector whose
sectorId equals 1
|
|
To return the ids of all entities in a
given domain related by one or
more associations to other entities
whose classifiers/decorators/sourceId
match a specified scopeFilter query.
|
EQUIPMENT |
/grouped-by-sector/classifiers[ @item=’test-app-module:Rural’] |
All entities that are grouped by a Sector
whose classifiers match test-app-module:Rural.
|
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://<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 Rural
GET https://<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 |
relationshipTypeName |
targetFilter |
scopeFilter |
Query result |
|---|---|---|---|---|
Return all related
relationship IDs and
classifiers.
|
MANAGEDELEMENT
_MANAGES
_ORUFUNCTION
|
/classifiers |
All MANAGEDELEMENT
_MANAGES_ORUFUNCTION IDs
and classifiers.
|
|
Return all related
relationship IDs and
decorators.
|
MANAGEDELEMENT
_MANAGES
_ORUFUNCTION
|
/decorators |
All MANAGEDELEMENT
_MANAGES_ORUFUNCTION IDs
and 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’] |
All MANAGEDELEMENT
_MANAGES_ORUFUNCTION IDs
and decorators where key
of the decorator is
“odu-function-model
:textdata” and the value
of the decorator is
‘Stockholm’ and
classifiers exactly
contains “odu-function
-model:Indoor”.
|
|
Return related relationship
IDs and classifiers that
are partially matched
for the classifier.
|
MANAGEDELEMENT
_MANAGES
_ORUFUNCTION
|
/classifiers |
/classifiers[contains (@item, ‘Ind’)] |
All MANAGEDELEMENT
_MANAGES_ORUFUNCTION IDs
and classifiers where
classifiers partially
contains the text “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’)] |
All MANAGEDELEMENT
_MANAGES_ORUFUNCTION IDs
and decorators where
where key of the
decorator is “odu-
function-model:textdata”
and the value of the
decorator partially
contains ‘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’)] |
All MANAGEDELEMENT
_MANAGES_ORUFUNCTION IDs,
decorators and
classifiers where where
the key of the decorator
is “odu-function-model
:textdata”, the value of
the decorator partially
contains ‘Stock’, and the
classifiers partially
contain the text “Ind”.
|
Example: Get the relationships that have the classifier odu-function-model:Indoor:
GET https://<host>/topology-inventory/<API_VERSION>/domains/REL_OAM_RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships?targetFilter=/classifiers&scopeFilter=/classifiers[@item = 'odu-function-model:Indoor']
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
}
Querying on Geographical Information
This functionality is supported by the following endpoints:
/domains/{domainName}/entity-types/{entityTypeName}/entities
The entityTypeName is used as the root of the queries. Use the “Well-Known Text” (WKT) representation of geometry to specify geometry objects. See the WKT documentation for more information.
For supported geometry objects, see Querying on geographical information.
Use case |
entityName |
targetFilter |
scopeFilter |
Query result |
Return the ids for all instances of an
entityTypeName covered by the given
polygon
|
AntennaModule |
/attributes[coveredBy(@geo-location, ‘POLYGON ((40.800533 -73.958444 ,40.768558 -73.981962, 40.765048 -73.973207, 40.797024 -73.949861 ,40.800533 -73.958444))’)] |
All AntennaModule entities covered by the
polygon ((40.800533 -73.958444, 40.768558
-73.981962, 40.765048 -73.973207, 40.797024
-73.949861, 40.800533 -73.958444)).
|
|
Return the attributes for all
instances of an entityTypeName covered
by the given polygon.
|
AntennaModule |
/attributes |
/attributes[coveredBy(@geo-location, ‘POLYGON ((40 40, 45 20, 30 45, 40 40 ))’)] |
All AntennaModule entities with attributes
covered by the polygon
((40 40, 45 20, 30 45, 40 40)).
|
Return the ids for all instances of an
entityTypeName within a specified
distance in meters from a point.
|
AntennaModule |
/attributes[withinMeters(@geo-location, ‘POINT(40.800533 -73.958444)’, 500.5)] |
All AntennaModule entities within 500.5 meters
from a point with latitude and longitude
values of 40.800533 and -73.958444
respectively.
|
|
Return the ids for all instances of an
entityTypeName covered by the given
collection of polygons.
|
AntennaModule |
/attributes[coveredBy(@geo-location, ‘MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35)),((30 20, 20 15, 20 25, 30 20)))’)] |
All AntennaModule entities covered by the
given collection of polygons (((40 40, 20 45,
45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45
20, 20 35)),((30 20, 20 15, 20 25, 30 20))).
|
Example: Get all ‘AntennaModule’ entities covered by the polygon with points (68 48) , (68 50), (69 50), (69 48), and (68 48):
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entity-types/AntennaModule/entities?scopeFilter=/attributes[coveredBy(@geo-location, 'POLYGON((48 68, 50 68, 50 69, 48 69, 48 68))')]
Result
{
"items": [
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"id": "urn:o-ran:smo:teiv:sha512:AntennaModule=971FCD28D02B78DDD982611639A0957140339C5522EAAF3FBACA1B8308CF7B0A870CFA80AE04E259805B2A2CB95E263261309883B4D4BF50183FA17AFBA47EA7"
}
]
}
],
"self": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/attributes[coveredBy(@geo-location, 'POLYGON((68 48, 68 50, 69 50, 69 48, 68 48))')]"
},
"first": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/attributes[coveredBy(@geo-location, 'POLYGON((68 48, 68 50, 69 50, 69 48, 68 48))')]"
},
"prev": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/attributes[coveredBy(@geo-location, 'POLYGON((68 48, 68 50, 69 50, 69 48, 68 48))')]"
},
"next": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/attributes[coveredBy(@geo-location, 'POLYGON((68 48, 68 50, 69 50, 69 48, 68 48))')]"
},
"last": {
"href": "/domains/EQUIPMENT/entity-types/AntennaModule/entities?offset=0&limit=500&scopeFilter=/attributes[coveredBy(@geo-location, 'POLYGON((68 48, 68 50, 69 50, 69 48, 68 48))')]"
},
"totalCount": 1
}
/domains/{domainName}/entities
Use case |
targetFilter |
scopeFilter |
Query result |
Return the ids for all entities in a
given domain that is covered by a
specified polygon.
|
/attributes[coveredBy(@geo-location, ‘POLYGON ((40.800533 -73.958444 ,40.768558 -73.981962, 40.765048 -73.973207, 40.797024 -73.949861 ,40.800533 -73.958444))’)] |
All AntennaModule entities covered by the
polygon ((40.800533 -73.958444, 40.768558
-73.981962, 40.765048 -73.973207, 40.797024
-73.949861, 40.800533 -73.958444)).
|
|
Return the attributes for all
AntennaModule entities in the given
domain covered by a specified polygon.
|
/AntennaModule /attributes |
/attributes[coveredBy(@geo-location, ‘POLYGON ((40 40, 45 20, 30 45, 40 40)) ‘)] |
All AntennaModule entities covered by
the polygon ((40 40, 45 20, 30 45, 40 40)).
|
Return the ids for all AntennaModule
entities in the given domain within a
specified distance in meters from a
point.
|
/AntennaModule |
/attributes[withinMeters(@geo-location, ‘POINT(40.800533 -73.958444)’, 500.5)] |
All AntennaModule entities within 500.5 meters
from a point with latitude and longitude
values of 40.800533 and -73.958444
respectively.
|
Return the ids for all entities in a
given domain that is covered by a
specified polygon.
|
/attributes[coveredBy(@geo-location, ‘MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35)),((30 20, 20 15, 20 25, 30 20))) ‘)] |
All entities covered by the given collection
of polygons (((40 40, 20 45, 45 30, 40 40)),((
20 35, 10 30, 10 10, 30 5, 45 20, 20 35)),((
30 20, 20 15, 20 25, 30 20))).
|
Example: Get all entities in the ‘EQUIPMENT’ domain within 500 meters from a point with latitude and longitude values of 68.94199 and 49.40199 respectively:
GET https://<host>/topology-inventory/<API_VERSION>/domains/EQUIPMENT/entities?scopeFilter=/attributes[withinMeters(@geo-location, 'POINT(68.94199 49.40199)', 500)]
Result
{
"items": [
{
"o-ran-smo-teiv-equipment:AntennaModule": [
{
"id": "urn:o-ran:smo:teiv:sha512:AntennaModule=971FCD28D02B78DDD982611639A0957140339C5522EAAF3FBACA1B8308CF7B0A870CFA80AE04E259805B2A2CB95E263261309883B4D4BF50183FA17AFBA47EA7"
}
]
}
],
"self": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&scopeFilter=/attributes[withinMeters(@geo-location, 'POINT(68.94199 49.40199)', 500)]"
},
"first": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&scopeFilter=/attributes[withinMeters(@geo-location, 'POINT(68.94199 49.40199)', 500)]"
},
"prev": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&scopeFilter=/attributes[withinMeters(@geo-location, 'POINT(68.94199 49.40199)', 500)]"
},
"next": {
"href": "/domains/EQUIPMENT/entities?offset=0&limit=500&scopeFilter=/attributes[withinMeters(@geo-location, 'POINT(68.94199 49.40199)', 500)]"
},
"totalCount": 1
}