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
}