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
}