| # |
| # ============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. <br/> 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. <br/> 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. <br/> 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. <br/> 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; |
| } |
| } |
| } |
| } |