#
# ============LICENSE_START=======================================================
# Copyright (C) 2024 Ericsson
# Modifications Copyright (C) 2024 OpenInfra Foundation Europe
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
#
openapi: 3.0.2
info:
x-api-id: 52812f69-83ac-4dfa-b83a-1a1bdf2d49b8
x-audience: external-public
description: |
Topology Exposure and Inventory data is the information that represents entities
in a telecommunications network and the relationships between them that
provide insight into a particular aspect of the network of importance to
specific use cases. Topology and Inventory data can be derived from
inventory, configuration, or other data.
Topology Exposure and Inventory supports several topology domains. A domain is a
grouping of topology and inventory entities that handles topology and
inventory data.
Entities are enabling the modelling and storage of complex network
infrastructure and relationships.
A relationship is a bi-directional connection between two entities, one
of which is the originating side (A-side) and the other is the
terminating side (B-side). The order of the sides matters since it
defines the relationship itself which must be unique.
Classifier (also known as tag or label) permits the association of a
well defined user specified string with an entity or relationship.
Decorators are user-defined attributes (key-value pairs) which can
be applied to topology entities and relationships.
Topology Exposure and Inventory API provides the capabilities to fetch topology
data. Using the filtering options, it is possible to define more specific
query requests.
## Querying simple entities
The *entityTypeName* is used as the root of the queries (from here
referred to 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 | domainName | entityTypeName | targetFilter | scopeFilter | Query result |
|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------|
| To return the ids for all instances of the entityTypeName used in the query. | RAN | GNBDUFunction | | | All ids of every GNBDUFunction |
| To return all attributes of every instance of the entityTypeName used in the query. | RAN | GNBDUFunction | /attributes | | All GNBDUFunctions 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 | GNBDUFunction | /attributes(gNBId) | | All gNBIds of every GNBDUFunction |
| 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 | GNBDUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every GNBDUFunction |
| To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the *scopeFilter* parameter. | RAN | GNBDUFunction | | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, 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 | GNBDUFunction | | /attributes [@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, 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* 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 represent OR. | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3] | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 or the sourceIds contains an item with "SubNetwork=Ireland" |
## Querying connected 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 | ENodeBFunction | | /managed-by-managedElement | All ENodeBFunction 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 | ENodeBFunction | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All ENodeBFunction entities that are managed by 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 | ENodeBFunction | /attributes | /attributes [@enbId=1] ; /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as *1*, managed by the Managed Element *urn:3gpp:dn: ManagedElement=1* or *urn:3gpp:dn: ManagedElement=2*, and provides EuTranCell *urn:3gpp:dn: ManagedElement=1, EUtranCell=2*. |
## Querying entities for 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 | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | | All relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. |
| To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION | | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. |
| To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. |
## Querying on relationships
Here, the *relationshipTypeName* is used as the root of the queries.
| Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result |
|:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. |
| To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association *managed-by-managedElement* to ManagedElement *urn:3gpp:dn: ManagedElement=1*. |
## Querying on classifiers and decorators
The *domainName* is used as the root of the queries.
| Use case | domainName | targetFilter | scopeFilter | Query result |
|:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------|
| Return all related entity IDs that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'gnbdu-function-model:Indoor'] | All the entity IDs that are classified with "gnbdu-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[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-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(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. |
The *entityName* is used as the root of the queries.
| Use case | entityName | relationshipTypeName | 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 exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-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 contains the text "Ind". |
| Return all related entity IDs and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'. |
| Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU | | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind". |
The *relationshipTypeName* is used as the root of the queries.
| Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result |
|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Return all related relationships IDs and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers. |
| Return all related relationships IDs and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators. |
| Return all related relationship IDs that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". |
| Return all related relationships IDs and classifiers that are partially matched for the given classifier. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | /classifiers[contains(@item, 'Ind')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind". |
| Return all related relationships IDs and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'. |
| Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind". |
version: 0.11.0
title: Topology Exposure and Inventory API
license:
name: Copyright (C) 2024 Ericsson, Modifications Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
url: http://www.apache.org/licenses/LICENSE-2.0
termsOfService: http://www.apache.org/licenses/LICENSE-2.0
tags:
- name: Entities and relationships
description: "Provides the capability to retrieve topology and inventory entities and relationships."
- name: Schemas
description: "Schemas are defined in YANG modeling language. A group of Yang schemas makes the topology and inventory model, which represents topology and inventory entities, their attributes, and their relationships. For more information on YANG modelling language, see [IETF Documentation](https://datatracker.ietf.org/doc/html/rfc6020)."
- name: Classifiers
description: "Provides the capability to update or remove user-defined keywords or tags on entities and relationships."
- name: Decorators
description: "Provides the capability to update or remove user-defined values on entities and relationships."
- name: Topology Groups
description: "Provides the capability to group topology entities of any type, with an appropriate description and other criteria."
servers:
- url: https://{host}/topology-inventory/v1alpha11
variables:
host:
default: localhost
description: Change this value to point to your custom host.
paths:
/domains:
get:
description: Get all the available topology domains.
tags:
- Entities and relationships
summary: Get all the available topology domains.
operationId: "getAllDomains"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Domains'
examples:
domains:
$ref: '#/components/examples/DomainsResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/entity-types:
get:
description: Get all the available topology entity types in domain name.
tags:
- Entities and relationships
summary: Get all the available topology entity types in domain name.
operationId: "getTopologyEntityTypes"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EntityTypes'
examples:
entityTypes:
$ref: '#/components/examples/EntityTypesResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/entity-types/{entityTypeName}/entities:
get:
description: Get all topology entities of a specific entity type.
tags:
- Entities and relationships
summary: Get all topology entities of a specific entity type.
operationId: "getTopologyByEntityTypeName"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/entityTypeNameInPath'
- $ref: '#/components/parameters/targetFilterOptionalInQuery'
- $ref: '#/components/parameters/scopeFilterOptionalInQuery'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EntitiesResponseMessage'
examples:
entities:
$ref: '#/components/examples/EntitiesResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}:
get:
description: Get topology for entity type name with specified id.
Specified id represents the entity instance.
tags:
- Entities and relationships
summary: Get topology for entity type name with specified id. Specified
id represents the entity instance.
operationId: "getTopologyById"
parameters:
- $ref: '#/components/parameters/acceptYangJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/entityTypeNameInPath'
- $ref: '#/components/parameters/entityIdInPath'
responses:
'200':
description: OK
content:
application/yang.data+json:
schema:
type: object
description: "Refer to yang model for schema definition"
examples:
entity:
$ref: '#/components/examples/EntityResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships:
get:
description: Get all relationships for entity type name with specified
id. Specified id represents the entity instance.
tags:
- Entities and relationships
summary: Get all relationships for entity type name with specified id.
Specified id represents the entity instance.
operationId: "getAllRelationshipsForEntityId"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/entityTypeNameInPath'
- $ref: '#/components/parameters/entityIdInPath'
- $ref: '#/components/parameters/targetFilterOptionalInQuery'
- $ref: '#/components/parameters/scopeFilterOptionalInQuery'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RelationshipsResponseMessage'
examples:
relationships:
$ref: '#/components/examples/RelationshipsResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/relationship-types:
get:
description: Get all the available topology relationship types.
tags:
- Entities and relationships
summary: Get all the available topology relationship types.
operationId: "getTopologyRelationshipTypes"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RelationshipTypes'
examples:
relationshipTypes:
$ref: '#/components/examples/RelationshipTypesResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships:
get:
description: Get topology relationships of a specific relationship type
name.
tags:
- Entities and relationships
summary: Get topology relationships of a specific relationship type name.
operationId: "getRelationshipsByType"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/relationshipTypeNameInPath'
- $ref: '#/components/parameters/targetFilterOptionalInQuery'
- $ref: '#/components/parameters/scopeFilterOptionalInQuery'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RelationshipsResponseMessage'
examples:
relationships:
$ref: '#/components/examples/RelationshipsResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}:
get:
description: Get relationship with specified id. Specified id
represents the relationship instance.
tags:
- Entities and relationships
summary: Get relationship with specified id. Specified id represents
the relationship instance.
operationId: "getRelationshipById"
parameters:
- $ref: '#/components/parameters/acceptYangJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/relationshipTypeNameInPath'
- $ref: '#/components/parameters/relationshipIdInPath'
responses:
'200':
description: OK
content:
application/yang.data+json:
schema:
type: object
description: "Refer to yang model for schema definition"
examples:
relationship:
$ref: '#/components/examples/RelationshipResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/domains/{domainName}/entities:
get:
description: Get topology entities by domain, using specified
targetFilter as mandatory query parameter.
tags:
- Entities and relationships
summary: "Get entities by domain"
operationId: "getEntitiesByDomain"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainNameInPath'
- $ref: '#/components/parameters/targetFilterOptionalInQuery'
- $ref: '#/components/parameters/scopeFilterOptionalInQuery'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EntitiesResponseMessage'
examples:
entities:
$ref: '#/components/examples/EntitiesResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/schemas:
post:
description: Create a new schema. The request body shall contain the schema in YANG format.
tags:
- Schemas
summary: Create a new schema.
operationId: createSchema
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/contentTypeMultipartFileInHeader'
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/MultipartFile'
responses:
'201':
$ref: '#/components/responses/Created'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
get:
description: Get a list of all schemas.
tags:
- Schemas
summary: Get a list of all schemas.
operationId: getSchemas
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/domainOptionalInQuery'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SchemaList'
examples:
schemas:
$ref: '#/components/examples/SchemasResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/schemas/{schemaName}/content:
get:
description: Get the model schema by name.
tags:
- Schemas
summary: Get the model schema.
operationId: getSchemaByName
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/schemaNameInPath'
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
examples:
schema:
$ref: '#/components/examples/SchemaResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
/schemas/{schemaName}:
delete:
description: Delete a schema.
tags:
- Schemas
summary: Delete a schema.
operationId: deleteSchema
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/schemaNameInPath'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/classifiers:
post:
description: Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.
tags:
- Classifiers
summary: Update entities and/or relationships with classifier(s).
operationId: updateClassifier
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/contentTypeJsonInHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Classifier'
examples:
classifier:
$ref: '#/components/examples/ClassifierExample'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
/decorators:
post:
description: Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.
tags:
- Decorators
summary: Update entities and/or relationships with decorator(s).
operationId: updateDecorator
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/contentTypeJsonInHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Decorator'
examples:
decorator:
$ref: '#/components/examples/DecoratorExample'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
/groups:
post:
description: Create group.
tags:
- Topology Groups
summary: Create group.
operationId: createGroup
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/contentTypeJsonInHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
examples:
dynamicGroup:
$ref: '#/components/examples/DynamicGroupExample'
staticGroup:
$ref: '#/components/examples/StaticGroupExample'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/GroupResponse'
examples:
group:
$ref: '#/components/examples/GroupResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
get:
description: Get all groups.
tags:
- Topology Groups
summary: Get all groups.
operationId: "getAllGroups"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Groups'
examples:
groups:
$ref: '#/components/examples/GroupsResponseExample'
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
/groups/{groupId}:
get:
description: Get a Group with specified id.
tags:
- Topology Groups
summary: Get a group with specified id.
operationId: "getGroup"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/groupIdInPath'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GroupResponse'
examples:
group:
$ref: '#/components/examples/GroupResponseExample'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
put:
description: Update a Group.
tags:
- Topology Groups
summary: Update a Group.
operationId: updateGroup
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/contentTypeJsonInHeader'
- $ref: '#/components/parameters/groupIdInPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
examples:
dynamicGroup:
$ref: '#/components/examples/DynamicGroupExample'
staticGroup:
$ref: '#/components/examples/StaticGroupExample'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'409':
$ref: '#/components/responses/Conflict'
'500':
$ref: '#/components/responses/InternalServerError'
delete:
description: Delete a group with specified id.
tags:
- Topology Groups
summary: Delete a group with specified id.
operationId: "deleteGroup"
parameters:
- $ref: '#/components/parameters/acceptJsonInHeader'
- $ref: '#/components/parameters/groupIdInPath'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
components:
schemas:
Classifier:
type: object
title: Classifier
properties:
operation:
type: string
enum:
- merge
- delete
classifiers:
type: array
items:
type: string
entityIds:
type: array
items:
type: string
relationshipIds:
type: array
items:
type: string
GroupResponse:
type: object
properties:
id:
type: string
groupName:
type: string
criteria:
oneOf:
- $ref: '#/components/schemas/StaticSelection'
- $ref: '#/components/schemas/DynamicSelection'
Group:
type: object
properties:
groupName:
type: string
criteria:
$ref: '#/components/schemas/TopologySelection'
Groups:
type: object
title: Groups
properties:
items:
type: array
items:
$ref: '#/components/schemas/GroupResponse'
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
TopologySelection:
oneOf:
- $ref: '#/components/schemas/StaticSelection'
- $ref: '#/components/schemas/DynamicSelection'
StaticSelection:
type: object
properties:
resourceInstances:
type: array
minItems: 1
items:
type: string
DynamicSelection:
type: object
additionalProperties: false
properties:
resourceQuery:
type: object
properties:
url:
type: string
method:
type: string
queryParams:
type: object
requestBody:
type: object
required:
- url
Decorator:
type: object
title: Decorator
properties:
operation:
type: string
enum:
- merge
- delete
decorators:
type: object
additionalProperties: true
description: Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema.
entityIds:
type: array
items:
type: string
relationshipIds:
type: array
items:
type: string
Domains:
type: object
title: Domains
properties:
items:
type: array
items:
properties:
name:
type: string
entityTypes:
$ref: '#/components/schemas/Href'
relationshipTypes:
$ref: '#/components/schemas/Href'
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
EntityTypes:
type: object
title: EntityTypes
properties:
items:
type: array
items:
type: object
properties:
name:
type: string
entities:
$ref: '#/components/schemas/Href'
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
EntitiesResponseMessage:
type: object
title: Entities
properties:
items:
type: array
items:
type: object
description: "Refer to yang model for schema definition of topology entities"
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
RelationshipTypes:
type: object
title: RelationshipTypes
properties:
items:
type: array
items:
type: object
properties:
name:
type: string
relationships:
$ref: '#/components/schemas/Href'
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
RelationshipsResponseMessage:
type: object
title: Relationships
properties:
items:
type: array
items:
type: object
description: "Refer to yang model for schema definition of topology relationships"
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
ErrorMessage:
type: object
title: Error
properties:
status:
type: string
message:
type: string
details:
type: string
Href:
type: object
title: Href
properties:
href:
type: string
format: uri-template
MultipartFile:
type: object
required:
- file
properties:
file:
type: string
description: multipartFile
format: binary
Schema:
type: object
title: Schema
properties:
name:
type: string
domain:
type: string
revision:
type: string
content:
$ref: '#/components/schemas/Href'
SchemaList:
type: object
title: Schemas
properties:
items:
type: array
items:
$ref: '#/components/schemas/Schema'
self:
$ref: '#/components/schemas/Href'
first:
$ref: '#/components/schemas/Href'
prev:
$ref: '#/components/schemas/Href'
next:
$ref: '#/components/schemas/Href'
last:
$ref: '#/components/schemas/Href'
totalCount:
type: integer
responses:
NotFound:
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: '404'
title: Resource Not Found
details: The requested resource is not found
Unauthorized:
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: '401'
title: Unauthorized request
details: This request is unauthorized
Forbidden:
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: '403'
title: Request Forbidden
details: This request is forbidden
BadRequest:
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: '400'
title: Bad Request
details: The provided request is not valid
Conflict:
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: '409'
title: Conflicting request
details: The request cannot be processed as the resource is in use.
Created:
description: Created without response body
InternalServerError:
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorMessage'
example:
status: '500'
title: Internal Server Error
details: Internal Server Error occurred
NoContent:
description: No Content
content: {}
parameters:
acceptJsonInHeader:
name: Accept
in: header
required: true
schema:
type: string
example: application/json
default: application/json
acceptYangJsonInHeader:
name: Accept
in: header
required: true
schema:
type: string
example: application/yang.data+json
default: application/yang.data+json
contentTypeMultipartFileInHeader:
name: Content-Type
in: header
required: true
schema:
type: string
example: multipart/form-data
default: multipart/form-data
contentTypeJsonInHeader:
name: Content-Type
in: header
required: true
schema:
type: string
example: application/json
default: application/json
offsetParam:
name: offset
in: query
description: Pagination offset.
required: false
schema:
type: integer
default: 0
minimum: 0
limitParam:
name: limit
in: query
description: Result limiter.
required: false
schema:
type: integer
default: 500
minimum: 1
maximum: 500
domainNameInPath:
name: domainName
in: path
description: domain name
required: true
schema:
type: string
schemaNameInPath:
name: schemaName
in: path
required: true
schema:
type: string
default: "o-ran-smo-teiv-ran"
groupIdInPath:
name: groupId
in: path
required: true
schema:
type: string
entityIdInPath:
name: entityId
in: path
required: true
schema:
type: string
relationshipIdInPath:
name: relationshipId
in: path
required: true
schema:
type: string
entityTypeNameInPath:
name: entityTypeName
in: path
required: true
schema:
type: string
relationshipTypeNameInPath:
name: relationshipTypeName
in: path
required: true
schema:
type: string
example: NRCELLDU_USES_NRSECTORCARRIER
domainOptionalInQuery:
name: domain
in: query
required: false
schema:
type: string
examples:
domain:
value: ran
targetFilterOptionalInQuery:
name: targetFilter
description: Use *targetFilter* to specify the entity type and
attributes to be returned in the REST response. The value for
*targetFilter* can also be a list of entity types and attributes.
in: query
required: false
schema:
type: string
examples:
targetFilter:
value: /attributes(nCI,nRPCI)
scopeFilterOptionalInQuery:
name: scopeFilter
description: Use *scopeFilter* to specify the attributes to match on.
The value for *scopeFilter* can also be a list of entity types and
attributes. scopeFilter returns a boolean.
in: query
required: false
schema:
type: string
examples:
scopeFilter:
value: /attributes[@nRTAC=310]
examples:
ClassifierExample:
value:
operation: merge
classifiers:
- module-x:Outdoor
- module-y:Rural
- module-z:Weekend
entityIds:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
relationshipIds:
- "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B"
DecoratorExample:
value:
operation: merge
decorators:
module-x:location: Stockholm
module-y:vendor: Ericsson
entityIds:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
relationshipIds:
- "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B"
EntityResponseExample:
value:
o-ran-smo-teiv-ran:GNBDUFunction:
- id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1"
attributes:
gNBDUId: 11
dUpLMNId:
mcc: 110
mnc: 210
gNBId: 21
gNBIdLength: 2
decorators:
location: Stockholm
classifiers:
- Rural
sourceIds:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1"
- "urn:cmHandle:395221E080CCF0FD1924103B15873814"
metadata:
trustLevel: RELIABLE
EntitiesResponseExample:
value:
items:
- o-ran-smo-teiv-ran:NRCellDU:
- id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
attributes:
cellLocalId: 4589
nCI: 1
nRPCI: 12
nRTAC: 310
decorators:
location: Stockholm
classifiers:
- Rural
sourceIds:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
- "urn:cmHandle:395221E080CCF0FD1924103B15873814"
metadata:
trustLevel: RELIABLE
- o-ran-smo-teiv-ran:NRCellDU:
- id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
attributes:
cellLocalId: 4559
nRPCI: 32
nRTAC: 510
decorators:
location: Stockholm
classifiers:
- Rural
sourceIds:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
- "urn:cmHandle:395221E080CCF0FD1924103B15873814"
metadata:
trustLevel: RELIABLE
self:
href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]"
first:
href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]"
prev:
href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]"
next:
href: "/domains/RAN/entity-types/NRCellDU/entities?offset=500&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]"
last:
href: "/domains/RAN/entity-types/NRCellDU/entities?offset=678&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]"
totalCount: 12
RelationshipResponseExample:
value:
o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER:
- id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B"
aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1"
decorators:
location: Stockholm
classifiers:
- Rural
sourceIds: []
metadata:
trustLevel: RELIABLE
RelationshipsResponseExample:
value:
items:
- o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER:
- id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B"
aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1"
decorators:
location: Stockholm
classifiers:
- Rural
sourceIds: []
metadata:
trustLevel: RELIABLE
- o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER:
- id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=11AB21444F9D7C6DAC7453879AB5586D294B495E43AC6F94750767DD624014DB7317E9A5EE73239876649D801037D6347355B19C5D97222B3C25000CF8A97C78"
aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=2"
decorators:
location: Stockholm
classifiers:
- Rural
sourceIds: []
metadata:
trustLevel: RELIABLE
self:
href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500"
first:
href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500"
prev:
href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500"
next:
href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=500&limit=500"
last:
href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=678&limit=500"
totalCount: 23
EntityTypesResponseExample:
value:
items:
- name: "GNBCUUPFunction"
entities:
href: "/domains/RAN/entity-types/GNBCUUPFunction/entities"
- name: "NRCellDU"
entities:
href: "/domains/RAN/entity-types/NRCellDU/entities"
- name: "GNBDUFunction"
entities:
href: "/domains/RAN/entity-types/GNBDUFunction/entities"
self:
href: "/domains/RAN/entity-types?offset=0&limit=500"
first:
href: "/domains/RAN/entity-types?offset=0&limit=500"
prev:
href: "/domains/RAN/entity-types?offset=0&limit=500"
next:
href: "/domains/RAN/entity-types?offset=500&limit=500"
last:
href: "/domains/RAN/entity-types?offset=678&limit=500"
totalCount: 43
RelationshipTypesResponseExample:
value:
items:
- name: "MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"
relationships:
href: "/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_GNBDUFUNCTION/relationships"
- name: "GNBDUFUNCTION_PROVIDES_NRCELLDU"
relationships:
href: "/domains/RAN/relationship-types/GNBDUFUNCTION_PROVIDES_NRCELLDU/relationships"
- name: "NRCELLDU_USES_NRSECTORCARRIER"
relationships:
href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships"
self:
href: "/domains/RAN/relationship-types?offset=0&limit=500"
first:
href: "/domains/RAN/relationship-types?offset=0&limit=500"
prev:
href: "/domains/RAN/relationship-types?offset=0&limit=500"
next:
href: "/domains/RAN/relationship-types?offset=500&limit=500"
last:
href: "/domains/RAN/relationship-types?offset=678&limit=500"
totalCount: 21
DomainsResponseExample:
value:
items:
- name: "EQUIPMENT"
entityTypes:
href: "/domains/EQUIPMENT/entity-types"
relationshipTypes:
href: "/domains/EQUIPMENT/relationship-types"
- name: "OAM"
entityTypes:
href: "/domains/OAM/entity-types"
relationshipTypes:
href: "/domains/OAM/relationship-types"
- name: "RAN"
entityTypes:
href: "/domains/RAN/entity-types"
relationshipTypes:
href: "/domains/RAN/relationship-types"
self:
href: "/domains?offset=0&limit=500"
first:
href: "/domains?offset=0&limit=500"
prev:
href: "/domains?offset=0&limit=500"
next:
href: "/domains?offset=500&limit=500"
last:
href: "/domains?offset=678&limit=500"
totalCount: 343
StaticGroupExample:
value:
groupName: "son-cell-filter-group-1"
criteria:
resourceInstances:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3"
DynamicGroupExample:
value:
groupName: "son-cell-filter-group-1"
criteria:
resourceQuery:
url: /domains/RAN/entity-types/NRCellDU/entities
method: GET
queryParams:
target:Filter: /sourceIds
scopeFilter: /attributes[@nRTAC=310]
requestBody: ""
GroupResponseExample:
value:
id: "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB="
groupName: "son-cell-filter-group-1"
criteria:
resourceInstances:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3"
GroupsResponseExample:
value:
items:
- id: "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB="
groupName: "son-cell-group-1"
criteria:
resourceInstances:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3"
- id: "urn:o-ran:smo:teiv:group:/DFJER77R6F7S9VD="
groupName: "son-cell-group-2"
criteria:
resourceInstances:
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=4"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=5"
- "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=6"
- id: "urn:o-ran:smo:teiv:group:/LMND77R6F7S9VD="
groupName: "son-cell-group-3"
criteria:
resourceQuery:
url: /domains/RAN/entity-types/NRCellDU/entities
method: GET
queryParams:
target:Filter: /sourceIds
scopeFilter: /attributes[@nRTAC=310]
requestBody: ""
self:
href: "/groups?offset=0&limit=500"
first:
href: "/groups?offset=0&limit=500"
prev:
href: "/groups?offset=0&limit=500"
next:
href: "/groups?offset=0&limit=500"
last:
href: "/groups?offset=0&limit=500"
totalCount: 3
SchemasResponseExample:
value:
items:
- name: "o-ran-smo-teiv-ran"
domain: "RAN"
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-ran/content"
- name: "o-ran-smo-teiv-equipment"
domain: "EQUIPMENT"
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-equipment/content"
- name: "o-ran-smo-teiv-oam"
domain: "OAM"
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-oam/content"
- name: "o-ran-smo-teiv-rel-oam-ran"
domain: "REL_OAM_RAN"
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-rel-oam-ran/content"
- name: "o-ran-smo-teiv-rel-equipment-ran"
domain: "REL_EQUIPMENT_RAN"
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-rel-equipment-ran/content"
- name: "o-ran-smo-teiv-common-yang-types"
domain: ""
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-common-yang-types/content"
- name: "o-ran-smo-teiv-common-yang-extensions"
domain: ""
revision: "2024-05-24"
content:
href: "/schemas/o-ran-smo-teiv-common-yang-extensions/content"
- name: "ietf-geo-location"
domain: ""
revision: "2022-02-11"
content:
href: "/schemas/ietf-geo-location/content"
- name: "_3gpp-common-yang-extensions"
domain: ""
revision: "2019-06-23"
content:
href: "/schemas/_3gpp-common-yang-extensions/content"
- name: "_3gpp-common-yang-types"
domain: ""
revision: "2023-11-06"
content:
href: "/schemas/_3gpp-common-yang-types/content"
- name: "ietf-yang-types"
domain: ""
revision: "2013-07-15"
content:
href: "/schemas/ietf-yang-types/content"
- name: "ietf-inet-types"
domain: ""
revision: "2013-07-15"
content:
href: "/schemas/ietf-inet-types/content"
self:
href: "/schemas?offset=0&limit=500"
first:
href: "/schemas?offset=0&limit=500"
prev:
href: "/schemas?offset=0&limit=500"
next:
href: "/schemas?offset=0&limit=500"
last:
href: "/schemas?offset=0&limit=500"
totalCount: 12
SchemaResponseExample:
value: |
module o-ran-smo-teiv-ran {
yang-version 1.1;
namespace "urn:o-ran:smo-teiv-ran";
prefix or-teiv-ran;
import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }
import _3gpp-common-yang-types { prefix types3gpp; }
organization "ORAN";
description
"Sample Model.";
revision "2024-05-24" {
description "Initial revision."
or-teiv-yext:label 0.1.0;
}
or-teiv-yext:domain RAN;
list GNBDUFunction {
uses or-teiv-types:Top_Grp_Type;
key id;
container attributes {
container dUpLMNId {
uses types3gpp:PLMNId;
}
leaf gNBDUId {
type uint32;
}
leaf gNBId {
type uint32;
}
leaf gNBIdLength {
type uint32;
}
}
}
list NRCellDU {
uses or-teiv-types:Top_Grp_Type;
key id;
container attributes {
leaf cellLocalId {
type uint32;
}
leaf nCI {
type uint32;
}
leaf nRPCI {
type uint32;
}
leaf nRTAC {
type uint32;
}
}
}
list NRSectorCarrier {
uses or-teiv-types:Top_Grp_Type;
key id;
container attributes {
leaf arfcnDL {
type uint32;
}
leaf arfcnUL {
type uint32;
}
leaf frequencyDL {
type uint32;
}
leaf frequencyUL {
type uint32;
}
leaf bSChannelBwDL {
type uint32;
}
}
}
}