From 98ac5ff0882ccee938d70e4459fbcacb4fd4ef33 Mon Sep 17 00:00:00 2001 From: JohnKeeney Date: Fri, 17 Oct 2025 17:42:16 +0100 Subject: [PATCH] TEIV Update dependencies for jdk24 & to address vulnerabilites & housekeeping Change-Id: I7ba0c4ae398e2fca15f6b0b4a213d96ce8fb2028 Issue-ID: SMO-198 Signed-off-by: JohnKeeney --- adapters/ncmp-to-teiv-adapter/pom.xml | 2 +- .../topology-exposure-inventory-openapi.json | 12478 ++++++++++--------- pgsql-schema-generator/pom.xml | 21 +- .../oran/smo/teiv/pgsqlgenerator/IndexType.java | 2 + pom.xml | 23 +- teiv/pom.xml | 17 +- .../main/java/org/oran/smo/teiv/RequestFilter.java | 2 +- .../teiv/exposure/spi/impl/DataRepositoryImpl.java | 8 +- .../teivpath/innerlanguage/ConditionFactory.java | 6 +- .../teivpath/refiner/BasePathRefinement.java | 4 +- .../teivpath/innerlanguage/DtoToJooqTest.java | 4 +- .../teivpath/innerlanguage/SelectBlockTest.java | 4 +- .../smo/teiv/service/SchemaCleanUpServiceTest.java | 6 +- .../oran/smo/teiv/utils/schema/GeographyTest.java | 2 +- .../yangtools/parser/data/dom/test/JsonTest.java | 42 +- .../parser/data/test/ComplexInstanceDataTest.java | 10 +- .../data/util/test/IdentityRefValueTest.java | 2 +- .../parser/util/test/InstanceIdentifierTest.java | 4 +- 18 files changed, 6565 insertions(+), 6072 deletions(-) diff --git a/adapters/ncmp-to-teiv-adapter/pom.xml b/adapters/ncmp-to-teiv-adapter/pom.xml index 9da2360..6eb346a 100644 --- a/adapters/ncmp-to-teiv-adapter/pom.xml +++ b/adapters/ncmp-to-teiv-adapter/pom.xml @@ -59,7 +59,7 @@ org.springframework.kafka spring-kafka - 3.3.4 + 3.3.10 org.projectlombok diff --git a/docs/offeredapis/topology-exposure-inventory-openapi.json b/docs/offeredapis/topology-exposure-inventory-openapi.json index ec826f4..ef81f92 100644 --- a/docs/offeredapis/topology-exposure-inventory-openapi.json +++ b/docs/offeredapis/topology-exposure-inventory-openapi.json @@ -1,6069 +1,6535 @@ { - "openapi" : "3.0.3", - "info" : { - "description" : "Topology Exposure and Inventory data is the information that represents entities\nin a telecommunications network and the relationships between them that\nprovide insight into a particular aspect of the network of importance to\nspecific use cases. Topology and Inventory data can be derived from\ninventory, configuration, or other data.\n\nTopology Exposure and Inventory supports several topology domains. A domain is a\ngrouping of topology and inventory entities that handles topology and\ninventory data.\n\nEntities are enabling the modelling and storage of complex network\ninfrastructure and relationships.\n\nA relationship is a bi-directional connection between two entities, one\nof which is the originating side (A-side) and the other is the\nterminating side (B-side). The order of the sides matters since it\ndefines the relationship itself which must be unique.\n\nClassifier (also known as tag or label) permits the association of a \nwell defined user specified string with an entity or relationship.\n\nDecorators are user-defined attributes (key-value pairs) which can\nbe applied to topology entities and relationships.\n\nMetadata provides additional information about entities and relationships within the database.\nThe reliabilityIndicator is used to indicate the reliability status of the topology data within the network.\nThe firstDiscovered timestamp is set for an entity and relationship instance when the instances are created for \nthe first time in Topology & Inventory. \nThe lastModified timestamp is set for updates to entities or relationships in Topology & Inventory, \nexcluding updates to classifiers or decorators.\nreliabilityIndicator, firstDiscovered, and lastModified are implemented as name-value pairs within the metadata.\nThey apply to every entity and relationship.\n\nTopology groups provide the capability to create user-defined collections of\ntopology entities and/or relationships of any type. Groups can be either\nstatic or dynamic based on how they are created.\n\nTopology Exposure and Inventory API provides the capabilities to fetch topology\ndata. Using the filtering options, it is possible to define more specific\nquery requests.\n\n## Querying simple entities\nThe *entityTypeName* is used as the root of the queries (from here\nreferred to as RootObject). Every other object, either in *targetFilter* or\n*scopeFilter*, has to relate to the RootObject. The queries are\nconstructed starting from the RootObject and all other objects are joined\nto it. If there is no connection between the RootObject and the other\nobject(s), the query is not constructed. The RootObject still can be\nretrieved and filtered using the */attributes*.\n\n| Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result |\n|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the ids for all instances of the entityTypeName used in the query. | RAN | ODUFunction | | | All ids of every ODUFunction |\n| To return all attributes of every instance of the entityTypeName used in the query. | RAN | ODUFunction | /attributes | | All ODUFunctions with every attribute |\n| To return every instance of the entityTypeName used in the query, but only the attribute that was defined in the *targetFilter* parameter.
Note: The attribute must be a valid field of the object. | RAN | ODUFunction | /attributes(gNBId) | | All gNBIds of every ODUFunction |\n| To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the *targetFilter* parameter.
Note: The attributes must be separated by a comma \",\" when using parenthesis \"()\". | RAN | ODUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every ODUFunction |\n| To return the ids for all instances of the entityTypeName used in the query, that partially matches the given property in the *scopeFilter* parameter. | RAN | ODUFunction | | /sourceIds[contains (@item, 'SubNetwork=Europe')] | Unique set of ids of ODUFunctions, where sourceIds contains *SubNetwork=Ireland* |\n| To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the *scopeFilter* parameter.
Note: The attributes must be separated by a *AND* or *OR*. | RAN | ODUFunction | | /attributes [@gNBIdLength=1 and @gNBId=9] | Unique set of ids of ODUFunctions, where the gNBIdLength equals 1 and the gNBId equals 9 |\n| 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 | ODUFunction | | /attributes [@gNBIdLength=2] | /sourceIds[contains (@item, 'SubNetwork=Europe')] | Unique set of ids of ODUFunctions, where the gNBIdLength equals 2 or the sourceIds contains an item with \"SubNetwork=Europe\" |\n| To return the metadata for all instances of the entityTypeName used in the query, that is *firstDiscovered* within the given timeframe in the *scopeFilter* parameter.
Note: The timestamps can be queried in any timezone. | RAN | ODUFunction | | /metadata[@firstDiscovered>='2025-01-06T12:34:56.789+05:30' and @firstDiscovered<='2025-01-09T16:10:36.461565+05:30'] | Unique set of ids of ODUFunctions, where metadata contains *firstDiscovered* timestamp within the range '2025-01-06T12:34:56.789+05:30' and '2025-01-09T16:10:36.461565+05:30' |\n\n## Querying connected entities\nThe *entityTypeName* is used as the root of the queries.\n\n| Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result |\n|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 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. |\n| 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 the Managed Element *urn:3gpp:dn: ManagedElement=1*. |\n| 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*. |\n| To return the ids for all instances of an entityTypeName related by one or more associations to other entities whose attribute matches the given *scopeFilter* parameter. | RAN | ENodeBFunction | | /provided-euTranCell/attributes[@tac=1] | All ENodeBFunction entities that provide an EUTranCell whose tac equals 1 |\n\n## Querying based on geographical location\nThe *entityTypeName* is used as the root of the queries. Use the \"Well-known text\" (WKT) representation of geometry to specify geometry objects.\n\n| Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result |\n|:-----------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the ids for all instances of an entityTypeName where the given attribute is covered by the given polygon. | EQUIPMENT | AntennaModule | | /attributes[coveredBy(@geo-location, 'POLYGON ((-73.958444 40.800533, -73.981962 40.768558, -73.973207 40.765048, -73.949861 40.797024, -73.958444 40.800533))')] | All AntennaModule entities covered by the given polygon. |\n| To return the attributes for all instances of an entityTypeName where the given attribute is covered by the given collection of polygons. | EQUIPMENT | AntennaModule | /attributes | /attributes[coveredBy(@geo-location, 'MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))')] | All AntennaModule entities covered by the given polygons. |\n| To return the ids for all instances of an entityTypeName within the given distance in meters from a given attribute. | EQUIPMENT | AntennaModule | | /attributes[withinMeters(@geo-location, 'POINT(-73.958444 40.800533)', 500.5)] | All AntennaModule entities within the given distance from the given point. |\n| To return the attributes for all instances of an entityTypeName which has a connected entity whose given attribute is within a polygon | RAN | NRCellDU | /attributes | /serving-antennaModule/attributes[coveredBy(@geo-location, 'POLYGON ((-73.958444 40.800533, -73.981962 40.768558, -73.973207 40.765048, -73.949861 40.797024, -73.958444 40.800533))')] | All NRCellDU entities that have at least one connected AntennaModule with a geo-location attribute within the given polygon. |\n\n## Querying entities for relationships\nThe *entityTypeName* is used as the root of the queries.\n\n| Use case | domainName | entityTypeName | entityId | targetFilter | scopeFilter | Query result |\n|:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the relationships for a given entity specified by its id. | RAN | ODUFunction | urn:3gpp:dn: ManagedElement=1, ODUFunction=1 | | | All relations for the ODUFunction with id *urn:3gpp:dn: ManagedElement=1, ODUFunction=1*. |\n| To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | ODUFunction | urn:3gpp:dn: ManagedElement=1, ODUFunction=1 | /MANAGEDELEMENT _MANAGES _ODUFUNCTION | | All *MANAGEDELEMENT _MANAGES _ODUFUNCTION* relations for the ODUFunction with id *urn:3gpp:dn: ManagedElement=1, ODUFunction=1*. |\n| To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | ODUFunction | urn:3gpp:dn: ManagedElement=1, ODUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _ODUFUNCTION* relations for the ODUFunction with id *urn:3gpp:dn: ManagedElement=1, ODUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. |\n\n## Querying on relationships\nHere, the *relationshipTypeName* is used as the root of the queries.\n\n| Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result |\n|:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. |\n| 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*. |\n\n## Querying on classifiers and decorators\nThe *domainName* is used as the root of the queries.\n\n| Use case | domainName | targetFilter | scopeFilter | Query result |\n|:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------|\n| Return all related entity ids that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'odu-function-model:Indoor'] | All the entity ids that are classified with \"odu-function-model:Indoor\" in RAN domain. |\n| 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. |\n| Return all related entity ids that are exactly matched with the key-value pair that specified decorators with given domain name. | RAN | | /decorators[@odu-function-model:textdata = 'Stockholm'] | All the entity ids that are exactly matched with \"odu-function-model:textdata = 'Stockholm'\" in RAN domain. |\n| Return all related entity ids that are exactly matched with key parameter where the value of the decorator is unknown with given domain name. | RAN | | /decorators[contains(@odu-function-model:textdata, '')] | All the entity ids that are exactly matched with \"odu-function-model:textdata as key of the decorator in RAN domain. |\n\nThe *entityName* is used as the root of the queries.\n\n| Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result |\n|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Return all related entity ids and classifiers. | NRCellDU | | /classifiers | | All NRCellDU ids and classifiers. |\n| Return all related entity ids and decorators. | NRCellDU | | /decorators | | All NRCellDU ids and decorators. |\n| Return all related entity ids that are exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'odu-function-model:Indoor']; /decorators [@odu-function-model:textdata = 'Stockholm'] | All NRCellDU ids where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator is 'Stockholm'\" and where classifier exactly contains \"odu-function-model:Indoor\". |\n| 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\". |\n| Return all related entity ids and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@odu-function-model:textdata, 'Stoc')] | All NRCellDU ids and where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stoc'. |\n| 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(@odu-function-model:textdata, 'Stoc')] | All NRCellDU ids and decorators where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text \"Ind\". |\n\n The *relationshipTypeName* is used as the root of the queries.\n\n| Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result |\n|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Return all related relationship ids and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and classifiers. |\n| Return all related relationship ids and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and decorators. |\n| Return all related relationship ids that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'odu-function-model:Indoor']; /decorators [@odu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and decorators where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator is 'Stockholm'\" and classifiers exactly contains \"odu-function-model:Indoor\". |\n| Return all related relationship 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\". |\n| Return all related relationship ids and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@odu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stock'. |\n| Return all related relationship 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(@odu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and decorators where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text \"Ind\". |\n", - "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", - "title" : "Topology Exposure and Inventory API", - "version" : "1.2.0", - "x-api-id" : "52812f69-83ac-4dfa-b83a-1a1bdf2d49b8", - "x-audience" : "external-public" - }, - "servers" : [ { - "url" : "https://{host}/topology-inventory/v1", - "variables" : { - "host" : { - "default" : "localhost", - "description" : "Change this value to point to your custom host." - } - } - } ], - "tags" : [ { - "description" : "Provides the capability to retrieve topology and inventory entities and relationships.", - "name" : "Entities and relationships" - }, { - "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" : "Schemas" - }, { - "description" : "User defined schemas are defined in YANG modeling language.", - "name" : "User Defined Schemas" - }, { - "description" : "Provides the capability to update or remove user-defined keywords or tags on entities and relationships.", - "name" : "Classifiers" - }, { - "description" : "Provides the capability to update or remove user-defined values on entities and relationships.", - "name" : "Decorators" - }, { - "description" : "Provides the capability to group topology entities and/or relationships of any type. Groups can be created in static or dynamic way. *Static groups*: Group members are defined statically upon group creation. It can include a maximum of 10,000 members. *Dynamic groups*: Group members are dynamically selected based on the defined resource query.", - "name" : "Groups" - } ], - "paths" : { - "/domains" : { - "get" : { - "description" : "Get all the available topology domains.", - "operationId" : "getAllDomains", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "domains" : { - "$ref" : "#/components/examples/DomainsResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Domains" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get all the available topology domains.", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/entity-types" : { - "get" : { - "description" : "Get all the available topology entity types in domain name.", - "operationId" : "getTopologyEntityTypes", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "entityTypes" : { - "$ref" : "#/components/examples/EntityTypesResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/EntityTypes" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get all the available topology entity types in domain name.", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/entity-types/{entityTypeName}/entities" : { - "get" : { - "description" : "Get all topology entities of a specific entity type.", - "operationId" : "getTopologyByEntityTypeName", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "entityTypeName", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Use *targetFilter* to specify what needs to be returned in the REST response.", - "examples" : { - "targetFilter" : { - "value" : "/sourceIds;/classifiers" - } - }, - "explode" : true, - "in" : "query", - "name" : "targetFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "ScopeFilter is used to specify the conditions to be applied.", - "examples" : { - "scopeFilter" : { - "value" : "/sourceIds[contains(@item,'ManagedElement=1')]" - } - }, - "explode" : true, - "in" : "query", - "name" : "scopeFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "entities" : { - "$ref" : "#/components/examples/EntitiesResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Entities" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get all topology entities of a specific entity type.", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}" : { - "get" : { - "description" : "Get a specific Topology Entity instance of a Topology Entity type", - "operationId" : "getTopologyById", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/yang.data+json", - "example" : "application/yang.data+json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "entityTypeName", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "entityId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "application/yang.data+json" : { - "examples" : { - "entity" : { - "$ref" : "#/components/examples/EntityResponseExample" - } - }, - "schema" : { - "description" : "Encapsulated object reference to the data model for schema definition of Topology Entity", - "type" : "object" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get a specific Topology Entity instance of a Topology Entity type", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships" : { - "get" : { - "description" : "Get all relationships for a specific Topology Entity instance of a Topology Entity type", - "operationId" : "getAllRelationshipsForEntityId", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "entityTypeName", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "entityId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Use *targetFilter* to specify what needs to be returned in the REST response.", - "examples" : { - "targetFilter" : { - "value" : "/sourceIds;/classifiers" - } - }, - "explode" : true, - "in" : "query", - "name" : "targetFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "ScopeFilter is used to specify the conditions to be applied.", - "examples" : { - "scopeFilter" : { - "value" : "/sourceIds[contains(@item,'ManagedElement=1')]" - } - }, - "explode" : true, - "in" : "query", - "name" : "scopeFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "relationships" : { - "$ref" : "#/components/examples/RelationshipsResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Relationships" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get all relationships for a specific Topology Entity instance of a Topology Entity type", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/relationship-types" : { - "get" : { - "description" : "Get all the available Topology Relationship types.", - "operationId" : "getTopologyRelationshipTypes", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "relationshipTypes" : { - "$ref" : "#/components/examples/RelationshipTypesResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/RelationshipTypes" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get all the available topology relationship types.", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships" : { - "get" : { - "description" : "Get all the available Topology Relationships of a specific relationship type name name.", - "operationId" : "getRelationshipsByType", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "relationshipTypeName", - "required" : true, - "schema" : { - "example" : "NRCELLDU_USES_NRSECTORCARRIER", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Use *targetFilter* to specify what needs to be returned in the REST response.", - "examples" : { - "targetFilter" : { - "value" : "/sourceIds;/classifiers" - } - }, - "explode" : true, - "in" : "query", - "name" : "targetFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "ScopeFilter is used to specify the conditions to be applied.", - "examples" : { - "scopeFilter" : { - "value" : "/sourceIds[contains(@item,'ManagedElement=1')]" - } - }, - "explode" : true, - "in" : "query", - "name" : "scopeFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "relationships" : { - "$ref" : "#/components/examples/RelationshipsResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Relationships" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get all the available Topology Relationships of a specific relationship type name.", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}" : { - "get" : { - "description" : "Get a specific Topology Relationship instance of a Topology Relationship type.", - "operationId" : "getRelationshipById", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/yang.data+json", - "example" : "application/yang.data+json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "relationshipTypeName", - "required" : true, - "schema" : { - "example" : "NRCELLDU_USES_NRSECTORCARRIER", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "relationshipId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "application/yang.data+json" : { - "examples" : { - "relationship" : { - "$ref" : "#/components/examples/RelationshipResponseExample" - } - }, - "schema" : { - "description" : "Encapsulated object reference to the data model for schema definition of Topology Relationship", - "type" : "object" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get a specific Topology Relationship instance of a Topology Relationship type.", - "tags" : [ "Entities and relationships" ] - } - }, - "/domains/{domainName}/entities" : { - "get" : { - "description" : "Get topology entities by domain, using a specified *targetFilter* as a query parameter.", - "operationId" : "getEntitiesByDomain", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Use *targetFilter* to specify what needs to be returned in the REST response.", - "examples" : { - "targetFilter" : { - "value" : "/sourceIds;/classifiers" - } - }, - "explode" : true, - "in" : "query", - "name" : "targetFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "ScopeFilter is used to specify the conditions to be applied.", - "examples" : { - "scopeFilter" : { - "value" : "/sourceIds[contains(@item,'ManagedElement=1')]" - } - }, - "explode" : true, - "in" : "query", - "name" : "scopeFilter", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "entities" : { - "$ref" : "#/components/examples/EntitiesResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Entities" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get entities by domain", - "tags" : [ "Entities and relationships" ] - } - }, - "/schemas" : { - "get" : { - "description" : "Get a list of all topology model schemas.", - "operationId" : "getSchemas", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "examples" : { - "domain" : { - "value" : "RAN" - } - }, - "explode" : true, - "in" : "query", - "name" : "domain", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "schemas" : { - "$ref" : "#/components/examples/SchemasResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Schemas" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get a list of all pre defined schemas.", - "tags" : [ "Schemas" ] - }, - "post" : { - "deprecated" : true, - "description" : "Create a new schema. The request body contains the schema in YANG format.", - "operationId" : "createSchema", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "multipart/form-data", - "example" : "multipart/form-data", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "multipart/form-data" : { - "schema" : { - "$ref" : "#/components/schemas/MultipartFile" - } - } - }, - "required" : true - }, - "responses" : { - "201" : { - "description" : "Created without response body" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "401", - "title" : "Unauthorized request", - "details" : "This request is unauthorized" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "403", - "title" : "Request Forbidden", - "details" : "This request is forbidden" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "409" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "409", - "title" : "Conflicting request", - "details" : "The request cannot be processed as the resource is in use." - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Conflict" - }, - "500" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Create a new schema.", - "tags" : [ "Schemas" ] - } - }, - "/schemas/{schemaName}/content" : { - "get" : { - "description" : "Get the model schema by name.", - "operationId" : "getSchemaByName", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "text/plain", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "schemaName", - "required" : true, - "schema" : { - "default" : "o-ran-smo-teiv-ran", - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "text/plain" : { - "examples" : { - "schema" : { - "$ref" : "#/components/examples/SchemaResponseExample" - } - }, - "schema" : { - "type" : "string" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get the model schema.", - "tags" : [ "Schemas" ] - } - }, - "/user-defined-schemas" : { - "get" : { - "description" : "Get a list of all user defined schemas.", - "operationId" : "getUserDefinedSchemas", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UserDefinedSchemas" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get a list of all used defined schemas.", - "tags" : [ "User Defined Schemas" ] - }, - "post" : { - "description" : "Create a new user defined schema. The request body contains the schema in YANG format.", - "operationId" : "createUserDefinedSchema", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "multipart/form-data", - "example" : "multipart/form-data", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "multipart/form-data" : { - "schema" : { - "$ref" : "#/components/schemas/MultipartFile" - } - } - }, - "required" : true - }, - "responses" : { - "201" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/UserDefinedSchema" - } - } - }, - "description" : "Created", - "headers" : { - "Location" : { - "description" : "Contains the URI of the newly created resource", - "explode" : false, - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } - } - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "409" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Conflict" - }, - "411" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Length Required" - }, - "413" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Payload Too Large" - }, - "415" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unsupported Media Type" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Create a new user defined schema.", - "tags" : [ "User Defined Schemas" ] - } - }, - "/user-defined-schemas/{schemaName}/content" : { - "get" : { - "description" : "Get the user defined model schema by name.", - "operationId" : "getUserDefinedSchemaByName", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "text/plain", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "schemaName", - "required" : true, - "schema" : { - "default" : "o-ran-smo-teiv-ran", - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "text/plain" : { - "examples" : { - "schema" : { - "$ref" : "#/components/examples/SchemaResponseExample" - } - }, - "schema" : { - "type" : "string" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Acceptable" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "URI Too Large" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Get the user defined model schema.", - "tags" : [ "User Defined Schemas" ] - } - }, - "/schemas/{schemaName}" : { - "delete" : { - "deprecated" : true, - "description" : "Delete a schema.", - "operationId" : "deleteSchema", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "schemaName", - "required" : true, - "schema" : { - "default" : "o-ran-smo-teiv-ran", - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "401", - "title" : "Unauthorized request", - "details" : "This request is unauthorized" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "403", - "title" : "Request Forbidden", - "details" : "This request is forbidden" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "500" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Delete a schema.", - "tags" : [ "Schemas" ] - } - }, - "/user-defined-schemas/{schemaName}" : { - "delete" : { - "description" : "Delete a user defined schema.", - "operationId" : "deleteUserDefinedSchema", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "schemaName", - "required" : true, - "schema" : { - "default" : "o-ran-smo-teiv-ran", - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Delete a user defined schema.", - "tags" : [ "User Defined Schemas" ] - } - }, - "/classifiers" : { - "post" : { - "deprecated" : true, - "description" : "Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.", - "operationId" : "updateClassifierDeprecated", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "updateClassifier" : { - "$ref" : "#/components/examples/ClassifierMergeExample" - }, - "removeClassifier" : { - "$ref" : "#/components/examples/ClassifierDeleteExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Classifier" - } - } - }, - "required" : true - }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "401", - "title" : "Unauthorized request", - "details" : "This request is unauthorized" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "403", - "title" : "Request Forbidden", - "details" : "This request is forbidden" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "409" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "409", - "title" : "Conflicting request", - "details" : "The request cannot be processed as the resource is in use." - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Conflict" - }, - "500" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Update entities and/or relationships with classifier(s).", - "tags" : [ "Classifiers" ] - } - }, - "/manage-classifiers" : { - "post" : { - "description" : "Update entities and/or relationships with classifier(s).", - "operationId" : "updateClassifier", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "updateClassifier" : { - "$ref" : "#/components/examples/ClassifierMergeExample" - }, - "removeClassifier" : { - "$ref" : "#/components/examples/ClassifierDeleteExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Classifier" - } - } - }, - "required" : true - }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "409" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Conflict" - }, - "411" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Length Required" - }, - "413" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Payload Too Large" - }, - "415" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unsupported Media Type" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Update entities and/or relationships with classifier(s).", - "tags" : [ "Classifiers" ] - } - }, - "/decorators" : { - "post" : { - "deprecated" : true, - "description" : "Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.", - "operationId" : "updateDecoratorDeprecated", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "mergeDecorator" : { - "$ref" : "#/components/examples/DecoratorMergeExample" - }, - "removeDecorator" : { - "$ref" : "#/components/examples/DecoratorDeleteExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Decorator" - } - } - }, - "required" : true - }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "401", - "title" : "Unauthorized request", - "details" : "This request is unauthorized" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "403", - "title" : "Request Forbidden", - "details" : "This request is forbidden" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "409" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "409", - "title" : "Conflicting request", - "details" : "The request cannot be processed as the resource is in use." - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Conflict" - }, - "500" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Update entities and/or relationships with decorator(s).", - "tags" : [ "Decorators" ] - } - }, - "/manage-decorators" : { - "post" : { - "description" : "Update entities and/or relationships with decorator(s).", - "operationId" : "updateDecorator", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "mergeDecorator" : { - "$ref" : "#/components/examples/DecoratorMergeExample" - }, - "removeDecorator" : { - "$ref" : "#/components/examples/DecoratorDeleteExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/Decorator" - } - } - }, - "required" : true - }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "409" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Conflict" - }, - "411" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Length Required" - }, - "413" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Payload Too Large" - }, - "415" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Unsupported Media Type" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Service Unavailable" - } - }, - "summary" : "Update entities and/or relationships with decorator(s).", - "tags" : [ "Decorators" ] - } - }, - "/groups" : { - "get" : { - "description" : "Get all groups.", - "operationId" : "getAllGroups", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Group name. If not specified, returns all the groups.", - "explode" : true, - "in" : "query", - "name" : "name", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "groups" : { - "$ref" : "#/components/examples/GroupsResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/GroupsResponse" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Get all groups.", - "tags" : [ "Groups" ] - }, - "post" : { - "description" : "Create a group of entities and/or relationships in a static or dynamic way.", - "operationId" : "createGroup", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "staticGroup" : { - "$ref" : "#/components/examples/CreateStaticGroupPayloadExample" - }, - "dynamicGroup" : { - "$ref" : "#/components/examples/CreateDynamicGroupGetEntitiesByDomainPayloadExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/CreateGroupPayload" - } - } - }, - "required" : true - }, - "responses" : { - "201" : { - "content" : { - "application/json" : { - "examples" : { - "static" : { - "$ref" : "#/components/examples/StaticGroupResponseExample" - }, - "dynamic" : { - "$ref" : "#/components/examples/DynamicGroupResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/GroupByIdResponse" - } - } - }, - "description" : "Created" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "500" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Create a new group.", - "tags" : [ "Groups" ] - } - }, - "/groups/{groupId}" : { - "delete" : { - "description" : "Delete a group with specified id.", - "operationId" : "deleteGroup", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Delete a group with specified id.", - "tags" : [ "Groups" ] - }, - "get" : { - "description" : "Get a group with specified id.", - "operationId" : "getGroupById", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "static" : { - "$ref" : "#/components/examples/StaticGroupResponseExample" - }, - "dynamic" : { - "$ref" : "#/components/examples/DynamicGroupResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/GroupByIdResponse" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Get a group with specified id.", - "tags" : [ "Groups" ] - } - }, - "/groups/{groupId}/name" : { - "put" : { - "description" : "Update the name of a group.", - "operationId" : "updateGroupName", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "GroupNameUpdatePayload" : { - "$ref" : "#/components/examples/UpdateGroupNamePayloadExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/UpdateGroupNamePayload" - } - } - }, - "required" : true - }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Update the name of a group.", - "tags" : [ "Groups" ] - } - }, - "/groups/{groupId}/members" : { - "get" : { - "description" : "Get the members of a group with specified id.", - "operationId" : "getMembers", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "members" : { - "$ref" : "#/components/examples/MembersResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/MembersResponse" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Get the members of a group with specified id.", - "tags" : [ "Groups" ] - } - }, - "/groups/{groupId}/provided-members" : { - "get" : { - "description" : "Get the provided members of a static group with specified id.", - "operationId" : "getProvidedMembers", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, { - "description" : "Status can be present (or) not-present (or) invalid. If not specified, returns all members of the group.", - "explode" : true, - "in" : "query", - "name" : "status", - "required" : false, - "schema" : { - "enum" : [ "present", "not-present", "invalid" ], - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "members" : { - "$ref" : "#/components/examples/ProvidedMembersResponseExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/MembersResponse" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Not Found" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Get the provided members of a static group with specified id.", - "tags" : [ "Groups" ] - } - }, - "/groups/{groupId}/provided-members-operations" : { - "post" : { - "description" : "Merge or remove members in an existing topology group. This operation is applicable for static group only.", - "operationId" : "updateProvidedMembers", - "parameters" : [ { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "mergeMembersPayload" : { - "$ref" : "#/components/examples/MergeProvidedMembersPayloadExample" - }, - "deleteMembersPayload" : { - "$ref" : "#/components/examples/RemoveProvidedMembersPayloadExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/UpdateProvidedMembersPayload" - } - } - }, - "required" : true + "openapi": "3.0.3", + "info": { + "description": "Topology Exposure and Inventory data is the information that represents entities\nin a telecommunications network and the relationships between them that\nprovide insight into a particular aspect of the network of importance to\nspecific use cases. Topology and Inventory data can be derived from\ninventory, configuration, or other data.\n\nTopology Exposure and Inventory supports several topology domains. A domain is a\ngrouping of topology and inventory entities that handles topology and\ninventory data.\n\nEntities are enabling the modelling and storage of complex network\ninfrastructure and relationships.\n\nA relationship is a bi-directional connection between two entities, one\nof which is the originating side (A-side) and the other is the\nterminating side (B-side). The order of the sides matters since it\ndefines the relationship itself which must be unique.\n\nClassifier (also known as tag or label) permits the association of a \nwell defined user specified string with an entity or relationship.\n\nDecorators are user-defined attributes (key-value pairs) which can\nbe applied to topology entities and relationships.\n\nMetadata provides additional information about entities and relationships within the database.\nThe reliabilityIndicator is used to indicate the reliability status of the topology data within the network.\nThe firstDiscovered timestamp is set for an entity and relationship instance when the instances are created for \nthe first time in Topology & Inventory. \nThe lastModified timestamp is set for updates to entities or relationships in Topology & Inventory, \nexcluding updates to classifiers or decorators.\nreliabilityIndicator, firstDiscovered, and lastModified are implemented as name-value pairs within the metadata.\nThey apply to every entity and relationship.\n\nTopology groups provide the capability to create user-defined collections of\ntopology entities and/or relationships of any type. Groups can be either\nstatic or dynamic based on how they are created.\n\nTopology Exposure and Inventory API provides the capabilities to fetch topology\ndata. Using the filtering options, it is possible to define more specific\nquery requests.\n\n## Querying simple entities\nThe *entityTypeName* is used as the root of the queries (from here\nreferred to as RootObject). Every other object, either in *targetFilter* or\n*scopeFilter*, has to relate to the RootObject. The queries are\nconstructed starting from the RootObject and all other objects are joined\nto it. If there is no connection between the RootObject and the other\nobject(s), the query is not constructed. The RootObject still can be\nretrieved and filtered using the */attributes*.\n\n| Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result |\n|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the ids for all instances of the entityTypeName used in the query. | RAN | ODUFunction | | | All ids of every ODUFunction |\n| To return all attributes of every instance of the entityTypeName used in the query. | RAN | ODUFunction | /attributes | | All ODUFunctions with every attribute |\n| To return every instance of the entityTypeName used in the query, but only the attribute that was defined in the *targetFilter* parameter.
Note: The attribute must be a valid field of the object. | RAN | ODUFunction | /attributes(gNBId) | | All gNBIds of every ODUFunction |\n| To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the *targetFilter* parameter.
Note: The attributes must be separated by a comma \",\" when using parenthesis \"()\". | RAN | ODUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every ODUFunction |\n| To return the ids for all instances of the entityTypeName used in the query, that partially matches the given property in the *scopeFilter* parameter. | RAN | ODUFunction | | /sourceIds[contains (@item, 'SubNetwork=Europe')] | Unique set of ids of ODUFunctions, where sourceIds contains *SubNetwork=Ireland* |\n| To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the *scopeFilter* parameter.
Note: The attributes must be separated by a *AND* or *OR*. | RAN | ODUFunction | | /attributes [@gNBIdLength=1 and @gNBId=9] | Unique set of ids of ODUFunctions, where the gNBIdLength equals 1 and the gNBId equals 9 |\n| 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 | ODUFunction | | /attributes [@gNBIdLength=2] | /sourceIds[contains (@item, 'SubNetwork=Europe')] | Unique set of ids of ODUFunctions, where the gNBIdLength equals 2 or the sourceIds contains an item with \"SubNetwork=Europe\" |\n| To return the metadata for all instances of the entityTypeName used in the query, that is *firstDiscovered* within the given timeframe in the *scopeFilter* parameter.
Note: The timestamps can be queried in any timezone. | RAN | ODUFunction | | /metadata[@firstDiscovered>='2025-01-06T12:34:56.789+05:30' and @firstDiscovered<='2025-01-09T16:10:36.461565+05:30'] | Unique set of ids of ODUFunctions, where metadata contains *firstDiscovered* timestamp within the range '2025-01-06T12:34:56.789+05:30' and '2025-01-09T16:10:36.461565+05:30' |\n\n## Querying connected entities\nThe *entityTypeName* is used as the root of the queries.\n\n| Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result |\n|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 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. |\n| 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 the Managed Element *urn:3gpp:dn: ManagedElement=1*. |\n| 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*. |\n| To return the ids for all instances of an entityTypeName related by one or more associations to other entities whose attribute matches the given *scopeFilter* parameter. | RAN | ENodeBFunction | | /provided-euTranCell/attributes[@tac=1] | All ENodeBFunction entities that provide an EUTranCell whose tac equals 1 |\n\n## Querying based on geographical location\nThe *entityTypeName* is used as the root of the queries. Use the \"Well-known text\" (WKT) representation of geometry to specify geometry objects.\n\n| Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result |\n|:-----------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the ids for all instances of an entityTypeName where the given attribute is covered by the given polygon. | EQUIPMENT | AntennaModule | | /attributes[coveredBy(@geo-location, 'POLYGON ((-73.958444 40.800533, -73.981962 40.768558, -73.973207 40.765048, -73.949861 40.797024, -73.958444 40.800533))')] | All AntennaModule entities covered by the given polygon. |\n| To return the attributes for all instances of an entityTypeName where the given attribute is covered by the given collection of polygons. | EQUIPMENT | AntennaModule | /attributes | /attributes[coveredBy(@geo-location, 'MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35), (30 20, 20 15, 20 25, 30 20)))')] | All AntennaModule entities covered by the given polygons. |\n| To return the ids for all instances of an entityTypeName within the given distance in meters from a given attribute. | EQUIPMENT | AntennaModule | | /attributes[withinMeters(@geo-location, 'POINT(-73.958444 40.800533)', 500.5)] | All AntennaModule entities within the given distance from the given point. |\n| To return the attributes for all instances of an entityTypeName which has a connected entity whose given attribute is within a polygon | RAN | NRCellDU | /attributes | /serving-antennaModule/attributes[coveredBy(@geo-location, 'POLYGON ((-73.958444 40.800533, -73.981962 40.768558, -73.973207 40.765048, -73.949861 40.797024, -73.958444 40.800533))')] | All NRCellDU entities that have at least one connected AntennaModule with a geo-location attribute within the given polygon. |\n\n## Querying entities for relationships\nThe *entityTypeName* is used as the root of the queries.\n\n| Use case | domainName | entityTypeName | entityId | targetFilter | scopeFilter | Query result |\n|:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the relationships for a given entity specified by its id. | RAN | ODUFunction | urn:3gpp:dn: ManagedElement=1, ODUFunction=1 | | | All relations for the ODUFunction with id *urn:3gpp:dn: ManagedElement=1, ODUFunction=1*. |\n| To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | ODUFunction | urn:3gpp:dn: ManagedElement=1, ODUFunction=1 | /MANAGEDELEMENT _MANAGES _ODUFUNCTION | | All *MANAGEDELEMENT _MANAGES _ODUFUNCTION* relations for the ODUFunction with id *urn:3gpp:dn: ManagedElement=1, ODUFunction=1*. |\n| To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | ODUFunction | urn:3gpp:dn: ManagedElement=1, ODUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _ODUFUNCTION* relations for the ODUFunction with id *urn:3gpp:dn: ManagedElement=1, ODUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. |\n\n## Querying on relationships\nHere, the *relationshipTypeName* is used as the root of the queries.\n\n| Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result |\n|:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. |\n| 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*. |\n\n## Querying on classifiers and decorators\nThe *domainName* is used as the root of the queries.\n\n| Use case | domainName | targetFilter | scopeFilter | Query result |\n|:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------|\n| Return all related entity ids that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'odu-function-model:Indoor'] | All the entity ids that are classified with \"odu-function-model:Indoor\" in RAN domain. |\n| 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. |\n| Return all related entity ids that are exactly matched with the key-value pair that specified decorators with given domain name. | RAN | | /decorators[@odu-function-model:textdata = 'Stockholm'] | All the entity ids that are exactly matched with \"odu-function-model:textdata = 'Stockholm'\" in RAN domain. |\n| Return all related entity ids that are exactly matched with key parameter where the value of the decorator is unknown with given domain name. | RAN | | /decorators[contains(@odu-function-model:textdata, '')] | All the entity ids that are exactly matched with \"odu-function-model:textdata as key of the decorator in RAN domain. |\n\nThe *entityName* is used as the root of the queries.\n\n| Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result |\n|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Return all related entity ids and classifiers. | NRCellDU | | /classifiers | | All NRCellDU ids and classifiers. |\n| Return all related entity ids and decorators. | NRCellDU | | /decorators | | All NRCellDU ids and decorators. |\n| Return all related entity ids that are exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'odu-function-model:Indoor']; /decorators [@odu-function-model:textdata = 'Stockholm'] | All NRCellDU ids where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator is 'Stockholm'\" and where classifier exactly contains \"odu-function-model:Indoor\". |\n| 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\". |\n| Return all related entity ids and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@odu-function-model:textdata, 'Stoc')] | All NRCellDU ids and where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stoc'. |\n| 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(@odu-function-model:textdata, 'Stoc')] | All NRCellDU ids and decorators where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text \"Ind\". |\n\n The *relationshipTypeName* is used as the root of the queries.\n\n| Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result |\n|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Return all related relationship ids and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and classifiers. |\n| Return all related relationship ids and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and decorators. |\n| Return all related relationship ids that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'odu-function-model:Indoor']; /decorators [@odu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and decorators where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator is 'Stockholm'\" and classifiers exactly contains \"odu-function-model:Indoor\". |\n| Return all related relationship 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\". |\n| Return all related relationship ids and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@odu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stock'. |\n| Return all related relationship 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(@odu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION ids and decorators where key of the decorator is \"odu-function-model:textdata\" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text \"Ind\". |\n", + "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" }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" - } - } - }, - "description" : "Bad Request" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "termsOfService": "http://www.apache.org/licenses/LICENSE-2.0", + "title": "Topology Exposure and Inventory API", + "version": "1.2.0", + "x-api-id": "52812f69-83ac-4dfa-b83a-1a1bdf2d49b8", + "x-audience": "external-public" + }, + "servers": [ + { + "url": "https://{host}/topology-inventory/v1", + "variables": { + "host": { + "default": "localhost", + "description": "Change this value to point to your custom host." } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Merge or remove members of a static group.", - "tags" : [ "Groups" ] - } - } - }, - "components" : { - "examples" : { - "ClassifierMergeExample" : { - "value" : { - "operation" : "merge", - "classifiers" : [ "module-x:Outdoor", "module-y:Rural", "module-z:Weekend" ], - "entityIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" ], - "relationshipIds" : [ "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" ] - } - }, - "ClassifierDeleteExample" : { - "value" : { - "operation" : "delete", - "classifiers" : [ "module-x:Outdoor", "module-z:Weekend" ], - "entityIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" ], - "relationshipIds" : [ "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" ] - } - }, - "DecoratorMergeExample" : { - "value" : { - "operation" : "merge", - "decorators" : { - "module-x:location" : "Stockholm", - "module-y:vendor" : "Ericsson" - }, - "entityIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" ], - "relationshipIds" : [ "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" ] - } - }, - "DecoratorDeleteExample" : { - "value" : { - "operation" : "delete", - "decorators" : { - "module-x:location" : "Stockholm" - }, - "entityIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" ], - "relationshipIds" : [ "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" ] - } - }, - "EntityResponseExample" : { - "value" : { - "o-ran-smo-teiv-ran:NRCellDU" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", - "attributes" : { - "cellLocalId" : 91, - "nCI" : 91, - "nRPCI" : 789, - "nRTAC" : 456 - }, - "decorators" : { - "location" : "Stockholm" - }, - "classifiers" : [ "Rural" ], - "sourceIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:cmHandle:395221E080CCF0FD1924103B15873814" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - } - }, - "EntitiesResponseExample" : { - "value" : { - "items" : [ { - "o-ran-smo-teiv-ran:GNBCUUPFunction" : [ { - "id" : "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=10,GNBCUUPFunction=10", - "attributes" : { - "gNBId" : 10, - "gNBIdLength" : 2 - }, - "sourceIds" : [ "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=10,GNBCUUPFunction=10", "urn:cmHandle:72FDA73D085F138FECC974CB91F1450E" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - }, { - "o-ran-smo-teiv-ran:GNBCUUPFunction" : [ { - "id" : "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=13,GNBCUUPFunction=13", - "attributes" : { - "gNBId" : 13, - "gNBIdLength" : 2 - }, - "sourceIds" : [ "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=13,GNBCUUPFunction=13", "urn:cmHandle:E5196035D0B49A65B00EAA392B4EE155" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - }, { - "o-ran-smo-teiv-ran:GNBCUUPFunction" : [ { - "id" : "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,GNBCUUPFunction=14", - "attributes" : { - "gNBId" : 14, - "gNBIdLength" : 2 - }, - "sourceIds" : [ "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,GNBCUUPFunction=14", "urn:cmHandle:D67C0BD04FA613BBFD176B24B68FD6A4" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - } ], - "self" : { - "href" : "/domains/RAN/entities?offset=0&limit=3&targetFilter=/sourceIds;/attributes" - }, - "first" : { - "href" : "/domains/RAN/entities?offset=0&limit=3&targetFilter=/sourceIds;/attributes" - }, - "prev" : { - "href" : "/domains/RAN/entities?offset=0&limit=3&targetFilter=/sourceIds;/attributes" - }, - "next" : { - "href" : "/domains/RAN/entities?offset=3&limit=3&targetFilter=/sourceIds;/attributes" - }, - "last" : { - "href" : "/domains/RAN/entities?offset=33&limit=3&targetFilter=/sourceIds;/attributes" - }, - "totalCount" : 3 - } - }, - "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,ODUFunction=1,NRCellDU=1", - "bSide" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1", - "sourceIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - } - }, - "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,ODUFunction=1,NRCellDU=1", - "bSide" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1", - "sourceIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - }, { - "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,ODUFunction=1,NRCellDU=2", - "bSide" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=2", - "sourceIds" : [ "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2", "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=2" ], - "metadata" : { - "reliabilityIndicator" : "OK", - "firstDiscovered" : "2025-01-07T12:20:12.24523200Z", - "lastModified" : "2025-01-08T10:40:36.46156500Z" - } - } ] - } ], - "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=0&limit=500" - }, - "last" : { - "href" : "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500" - }, - "totalCount" : 2 - } - }, - "EntityTypesResponseExample" : { - "value" : { - "items" : [ { - "name" : "AntennaCapability", - "entities" : { - "href" : "/domains/RAN/entity-types/AntennaCapability/entities" - } - }, { - "name" : "ENodeBFunction", - "entities" : { - "href" : "/domains/RAN/entity-types/ENodeBFunction/entities" - } - }, { - "name" : "EUtranCell", - "entities" : { - "href" : "/domains/RAN/entity-types/EUtranCell/entities" - } - } ], - "self" : { - "href" : "/domains/RAN/entity-types?offset=0&limit=3" - }, - "first" : { - "href" : "/domains/RAN/entity-types?offset=0&limit=3" - }, - "prev" : { - "href" : "/domains/RAN/entity-types?offset=0&limit=3" - }, - "next" : { - "href" : "/domains/RAN/entity-types?offset=3&limit=3" - }, - "last" : { - "href" : "/domains/RAN/entity-types?offset=9&limit=3" - }, - "totalCount" : 11 - } - }, - "RelationshipTypesResponseExample" : { - "value" : { - "items" : [ { - "name" : "MANAGEDELEMENT_MANAGES_ODUFUNCTION", - "relationships" : { - "href" : "/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships" - } - }, { - "name" : "ODUFUNCTION_PROVIDES_NRCELLDU", - "relationships" : { - "href" : "/domains/RAN/relationship-types/ODUFUNCTION_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=3" - }, - "first" : { - "href" : "/domains/RAN/relationship-types?offset=0&limit=3" - }, - "prev" : { - "href" : "/domains/RAN/relationship-types?offset=0&limit=3" - }, - "next" : { - "href" : "/domains/RAN/relationship-types?offset=0&limit=3" - }, - "last" : { - "href" : "/domains/RAN/relationship-types?offset=0&limit=3" - }, - "totalCount" : 3 - } - }, - "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" - } - }, { - "name" : "REL_EQUIPMENT_RAN", - "entityTypes" : { - "href" : "/domains/REL_EQUIPMENT_RAN/entity-types" - }, - "relationshipTypes" : { - "href" : "/domains/REL_EQUIPMENT_RAN/relationship-types" - } - }, { - "name" : "REL_OAM_RAN", - "entityTypes" : { - "href" : "/domains/REL_OAM_RAN/entity-types" - }, - "relationshipTypes" : { - "href" : "/domains/REL_OAM_RAN/relationship-types" - } - }, { - "name" : "TEIV", - "entityTypes" : { - "href" : "/domains/TEIV/entity-types" - }, - "relationshipTypes" : { - "href" : "/domains/TEIV/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=0&limit=500" - }, - "last" : { - "href" : "/domains?offset=0&limit=500" - }, - "totalCount" : 6 - } - }, - "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 {\nyang-version 1.1;\nnamespace \"urn:o-ran:smo-teiv-ran\";\nprefix or-teiv-ran;\nimport o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }\nimport o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }\nimport _3gpp-common-yang-types { prefix types3gpp; }\norganization \"ORAN\";\ndescription\n\"Sample Model.\";\nrevision \"2024-05-24\" {\n description \"Initial revision.\"\n or-teiv-yext:label 0.1.0;\n}\nor-teiv-yext:domain RAN;\nlist ODUFunction {\n uses or-teiv-types:Top_Grp_Type;\n key id;\n container attributes {\n container dUpLMNId {\n uses types3gpp:PLMNId;\n }\n leaf gNBDUId {\n type uint32;\n }\n leaf gNBId {\n type uint32;\n }\n leaf gNBIdLength {\n type uint32;\n }\n }\n}\nlist NRCellDU {\n uses or-teiv-types:Top_Grp_Type;\n key id;\n container attributes {\n leaf cellLocalId {\n type uint32;\n }\n leaf nCI {\n type uint32;\n }\n leaf nRPCI {\n type uint32;\n }\n leaf nRTAC {\n type uint32;\n }\n }\n}\nlist NRSectorCarrier {\n uses or-teiv-types:Top_Grp_Type;\n key id;\n container attributes {\n leaf arfcnDL {\n type uint32;\n }\n leaf arfcnUL {\n type uint32;\n }\n leaf frequencyDL {\n type uint32;\n }\n leaf frequencyUL {\n type uint32;\n }\n leaf bSChannelBwDL {\n type uint32;\n }\n }\n }\n}\n" - }, - "CreateStaticGroupPayloadExample" : { - "value" : { - "name" : "cell-filter-group-1", - "type" : "static", - "providedMembers" : [ { - "o-ran-smo-teiv-ran:NRCellDU" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" - } ] - }, { - "o-ran-smo-teiv-ran:ODUFunction" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1" - } ] - }, { - "o-ran-smo-teiv-oam:ManagedElement" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1" - } ] - }, { - "o-ran-smo-teiv-ran:ODUFUNCTION_PROVIDES_NRCELLDU" : [ { - "id" : "urn:o-ran:smo:teiv:sha512:ODUFUNCTION_PROVIDES_NRCELLDU=EA8BF964B4888BFD1991D8E2ECDFA7723118D3829C1378ACBB5484F9ADE328957641013EDF2BEC80CB8E4E0A46CC2D85B960EF25ABF61CC8601095948E368624" - } ] - }, { - "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION" : [ { - "id" : "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=86084B5A80FAC7339117CEB91A4838FAC28C50AF00C9A13DF66FFA497356A8F440626A935B9621D4C833F0A6DE2722EDC9A312E506D80235A8C1BF54D8DFACC8" - } ] - } ] - } - }, - "CreateDynamicGroupGetEntitiesByDomainPayloadExample" : { - "value" : { - "name" : "cell-filter-group-2", - "type" : "dynamic", - "criteria" : { - "queryType" : "getEntitiesByDomain", - "domain" : "RAN", - "targetFilter" : "/NRCellDU/attributes(nCI)", - "scopeFilter" : "/NRCellDU/attributes[@cellLocalId=1]" - } - } - }, - "GroupsResponseExample" : { - "value" : { - "items" : [ { - "id" : "urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000", - "name" : "cell-filter-group-1", - "type" : "static", - "providedMembers" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/provided-members" - }, - "members" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/members" - } - }, { - "id" : "urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000", - "name" : "cell-filter-group-2", - "type" : "dynamic", - "members" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members" - } - } ], - "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" : 2 - } - }, - "MembersResponseExample" : { - "value" : { - "items" : [ { - "o-ran-smo-teiv-ran:NRCellDU" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" - } ] - }, { - "o-ran-smo-teiv-ran:ODUFunction" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1" - } ] - }, { - "o-ran-smo-teiv-oam:ManagedElement" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1" - } ] - }, { - "o-ran-smo-teiv-ran:ODUFUNCTION_PROVIDES_NRCELLDU" : [ { - "id" : "urn:o-ran:smo:teiv:sha512:ODUFUNCTION_PROVIDES_NRCELLDU=EA8BF964B4888BFD1991D8E2ECDFA7723118D3829C1378ACBB5484F9ADE328957641013EDF2BEC80CB8E4E0A46CC2D85B960EF25ABF61CC8601095948E368624" - } ] - }, { - "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION" : [ { - "id" : "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=86084B5A80FAC7339117CEB91A4838FAC28C50AF00C9A13DF66FFA497356A8F440626A935B9621D4C833F0A6DE2722EDC9A312E506D80235A8C1BF54D8DFACC8" - } ] - } ], - "self" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" - }, - "first" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" - }, - "prev" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" - }, - "next" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" - }, - "last" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" - }, - "totalCount" : 5 - } - }, - "ProvidedMembersResponseExample" : { - "value" : { - "items" : [ { - "o-ran-smo-teiv-ran:NRCellDU" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" - } ] - }, { - "o-ran-smo-teiv-ran:ODUFunction" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1" - } ] - }, { - "o-ran-smo-teiv-oam:ManagedElement" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1" - } ] - }, { - "o-ran-smo-teiv-ran:ODUFUNCTION_PROVIDES_NRCELLDU" : [ { - "id" : "urn:o-ran:smo:teiv:sha512:ODUFUNCTION_PROVIDES_NRCELLDU=EA8BF964B4888BFD1991D8E2ECDFA7723118D3829C1378ACBB5484F9ADE328957641013EDF2BEC80CB8E4E0A46CC2D85B960EF25ABF61CC8601095948E368624" - } ] - }, { - "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION" : [ { - "id" : "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=86084B5A80FAC7339117CEB91A4838FAC28C50AF00C9A13DF66FFA497356A8F440626A935B9621D4C833F0A6DE2722EDC9A312E506D80235A8C1BF54D8DFACC8" - } ] - } ], - "self" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" - }, - "first" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" - }, - "prev" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" - }, - "next" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" - }, - "last" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" - }, - "totalCount" : 5 - } - }, - "MergeProvidedMembersPayloadExample" : { - "value" : { - "operation" : "merge", - "providedMembers" : [ { - "o-ran-smo-teiv-ran:NRCellDU" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" - } ] - } ] - } - }, - "RemoveProvidedMembersPayloadExample" : { - "value" : { - "operation" : "remove", - "providedMembers" : [ { - "o-ran-smo-teiv-ran:NRCellDU" : [ { - "id" : "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" - } ] - } ] - } - }, - "StaticGroupResponseExample" : { - "value" : { - "id" : "urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000", - "name" : "cell-filter-group-1", - "type" : "static", - "providedMembers" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/provided-members" - }, - "members" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/members" - } - } - }, - "DynamicGroupResponseExample" : { - "value" : { - "id" : "urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000", - "name" : "cell-filter-group-2", - "type" : "dynamic", - "criteria" : { - "queryType" : "getEntitiesByDomain", - "domain" : "RAN", - "targetFilter" : "/NRCellDU/attributes(nCI)", - "scopeFilter" : "/NRCellDU/attributes[@cellLocalId=1]" - }, - "members" : { - "href" : "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members" - } } - }, - "UpdateGroupNamePayloadExample" : { - "value" : { - "name" : "cell-filter-group-5" - } - } - }, - "parameters" : { - "acceptJsonInHeader" : { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, - "acceptYangJsonInHeader" : { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "application/yang.data+json", - "example" : "application/yang.data+json", - "type" : "string" - }, - "style" : "simple" - }, - "acceptPlainTextInHeader" : { - "explode" : false, - "in" : "header", - "name" : "Accept", - "required" : true, - "schema" : { - "default" : "text/plain", - "type" : "string" - }, - "style" : "simple" - }, - "contentTypeMultipartFileInHeader" : { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "multipart/form-data", - "example" : "multipart/form-data", - "type" : "string" - }, - "style" : "simple" - }, - "contentTypeJsonInHeader" : { - "explode" : false, - "in" : "header", - "name" : "Content-Type", - "required" : true, - "schema" : { - "default" : "application/json", - "example" : "application/json", - "type" : "string" - }, - "style" : "simple" - }, - "offsetParam" : { - "description" : "Pagination offset.", - "explode" : true, - "in" : "query", - "name" : "offset", - "required" : false, - "schema" : { - "default" : 0, - "minimum" : 0, - "type" : "integer" - }, - "style" : "form" - }, - "limitParam" : { - "description" : "Result limiter.", - "explode" : true, - "in" : "query", - "name" : "limit", - "required" : false, - "schema" : { - "default" : 500, - "maximum" : 500, - "minimum" : 1, - "type" : "integer" - }, - "style" : "form" - }, - "domainNameInPath" : { - "description" : "domain name", - "explode" : false, - "in" : "path", - "name" : "domainName", - "required" : true, - "schema" : { - "example" : "RAN", - "type" : "string" - }, - "style" : "simple" - }, - "schemaNameInPath" : { - "explode" : false, - "in" : "path", - "name" : "schemaName", - "required" : true, - "schema" : { - "default" : "o-ran-smo-teiv-ran", - "type" : "string" - }, - "style" : "simple" - }, - "groupIdInPath" : { - "explode" : false, - "in" : "path", - "name" : "groupId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, - "entityIdInPath" : { - "explode" : false, - "in" : "path", - "name" : "entityId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, - "relationshipIdInPath" : { - "explode" : false, - "in" : "path", - "name" : "relationshipId", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, - "entityTypeNameInPath" : { - "explode" : false, - "in" : "path", - "name" : "entityTypeName", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - }, - "relationshipTypeNameInPath" : { - "explode" : false, - "in" : "path", - "name" : "relationshipTypeName", - "required" : true, - "schema" : { - "example" : "NRCELLDU_USES_NRSECTORCARRIER", - "type" : "string" - }, - "style" : "simple" - }, - "domainOptionalInQuery" : { - "examples" : { - "domain" : { - "value" : "RAN" - } + ], + "tags": [ + { + "description": "Provides the capability to retrieve topology and inventory entities and relationships.", + "name": "Entities and relationships" }, - "explode" : true, - "in" : "query", - "name" : "domain", - "required" : false, - "schema" : { - "type" : "string" + { + "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": "Schemas" }, - "style" : "form" - }, - "targetFilterOptionalInQuery" : { - "description" : "Use *targetFilter* to specify what needs to be returned in the REST response.", - "examples" : { - "targetFilter" : { - "value" : "/sourceIds;/classifiers" - } + { + "description": "User defined schemas are defined in YANG modeling language.", + "name": "User Defined Schemas" }, - "explode" : true, - "in" : "query", - "name" : "targetFilter", - "required" : false, - "schema" : { - "type" : "string" + { + "description": "Provides the capability to update or remove user-defined keywords or tags on entities and relationships.", + "name": "Classifiers" }, - "style" : "form" - }, - "scopeFilterOptionalInQuery" : { - "description" : "ScopeFilter is used to specify the conditions to be applied.", - "examples" : { - "scopeFilter" : { - "value" : "/sourceIds[contains(@item,'ManagedElement=1')]" - } + { + "description": "Provides the capability to update or remove user-defined values on entities and relationships.", + "name": "Decorators" }, - "explode" : true, - "in" : "query", - "name" : "scopeFilter", - "required" : false, - "schema" : { - "type" : "string" + { + "description": "Provides the capability to group topology entities and/or relationships of any type. Groups can be created in static or dynamic way. *Static groups*: Group members are defined statically upon group creation. It can include a maximum of 10,000 members. *Dynamic groups*: Group members are dynamically selected based on the defined resource query.", + "name": "Groups" + } + ], + "paths": { + "/domains": { + "get": { + "description": "Get all the available topology domains.", + "operationId": "getAllDomains", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "domains": { + "$ref": "#/components/examples/DomainsResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Domains" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get all the available topology domains.", + "tags": [ + "Entities and relationships" + ] + } }, - "style" : "form" - }, - "groupMembersStatusOptionalInQuery" : { - "description" : "Status can be present (or) not-present (or) invalid. If not specified, returns all members of the group.", - "explode" : true, - "in" : "query", - "name" : "status", - "required" : false, - "schema" : { - "enum" : [ "present", "not-present", "invalid" ], - "type" : "string" + "/domains/{domainName}/entity-types": { + "get": { + "description": "Get all the available topology entity types in domain name.", + "operationId": "getTopologyEntityTypes", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "entityTypes": { + "$ref": "#/components/examples/EntityTypesResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/EntityTypes" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get all the available topology entity types in domain name.", + "tags": [ + "Entities and relationships" + ] + } }, - "style" : "form" - }, - "groupNameOptionalInQuery" : { - "description" : "Group name. If not specified, returns all the groups.", - "explode" : true, - "in" : "query", - "name" : "name", - "required" : false, - "schema" : { - "type" : "string" + "/domains/{domainName}/entity-types/{entityTypeName}/entities": { + "get": { + "description": "Get all topology entities of a specific entity type.", + "operationId": "getTopologyByEntityTypeName", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "entityTypeName", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + { + "description": "Use *targetFilter* to specify what needs to be returned in the REST response.", + "examples": { + "targetFilter": { + "value": "/sourceIds;/classifiers" + } + }, + "explode": true, + "in": "query", + "name": "targetFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "ScopeFilter is used to specify the conditions to be applied.", + "examples": { + "scopeFilter": { + "value": "/sourceIds[contains(@item,'ManagedElement=1')]" + } + }, + "explode": true, + "in": "query", + "name": "scopeFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "entities": { + "$ref": "#/components/examples/EntitiesResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Entities" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get all topology entities of a specific entity type.", + "tags": [ + "Entities and relationships" + ] + } }, - "style" : "form" - } - }, - "responses" : { - "204" : { - "content" : { }, - "description" : "No Content" - }, - "400" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}": { + "get": { + "description": "Get a specific Topology Entity instance of a Topology Entity type", + "operationId": "getTopologyById", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/yang.data+json", + "example": "application/yang.data+json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "entityTypeName", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "entityId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/yang.data+json": { + "examples": { + "entity": { + "$ref": "#/components/examples/EntityResponseExample" + } + }, + "schema": { + "description": "Encapsulated object reference to the data model for schema definition of Topology Entity", + "type": "object" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get a specific Topology Entity instance of a Topology Entity type", + "tags": [ + "Entities and relationships" + ] } - } }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships": { + "get": { + "description": "Get all relationships for a specific Topology Entity instance of a Topology Entity type", + "operationId": "getAllRelationshipsForEntityId", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "entityTypeName", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "entityId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + { + "description": "Use *targetFilter* to specify what needs to be returned in the REST response.", + "examples": { + "targetFilter": { + "value": "/sourceIds;/classifiers" + } + }, + "explode": true, + "in": "query", + "name": "targetFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "ScopeFilter is used to specify the conditions to be applied.", + "examples": { + "scopeFilter": { + "value": "/sourceIds[contains(@item,'ManagedElement=1')]" + } + }, + "explode": true, + "in": "query", + "name": "scopeFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "relationships": { + "$ref": "#/components/examples/RelationshipsResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Relationships" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get all relationships for a specific Topology Entity instance of a Topology Entity type", + "tags": [ + "Entities and relationships" + ] } - } }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/domains/{domainName}/relationship-types": { + "get": { + "description": "Get all the available Topology Relationship types.", + "operationId": "getTopologyRelationshipTypes", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "relationshipTypes": { + "$ref": "#/components/examples/RelationshipTypesResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/RelationshipTypes" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get all the available topology relationship types.", + "tags": [ + "Entities and relationships" + ] } - } }, - "description" : "Forbidden" - }, - "404" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships": { + "get": { + "description": "Get all the available Topology Relationships of a specific relationship type name name.", + "operationId": "getRelationshipsByType", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "relationshipTypeName", + "required": true, + "schema": { + "example": "NRCELLDU_USES_NRSECTORCARRIER", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Use *targetFilter* to specify what needs to be returned in the REST response.", + "examples": { + "targetFilter": { + "value": "/sourceIds;/classifiers" + } + }, + "explode": true, + "in": "query", + "name": "targetFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "ScopeFilter is used to specify the conditions to be applied.", + "examples": { + "scopeFilter": { + "value": "/sourceIds[contains(@item,'ManagedElement=1')]" + } + }, + "explode": true, + "in": "query", + "name": "scopeFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "relationships": { + "$ref": "#/components/examples/RelationshipsResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Relationships" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get all the available Topology Relationships of a specific relationship type name.", + "tags": [ + "Entities and relationships" + ] } - } }, - "description" : "Not Found" - }, - "405" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}": { + "get": { + "description": "Get a specific Topology Relationship instance of a Topology Relationship type.", + "operationId": "getRelationshipById", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/yang.data+json", + "example": "application/yang.data+json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "relationshipTypeName", + "required": true, + "schema": { + "example": "NRCELLDU_USES_NRSECTORCARRIER", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "relationshipId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/yang.data+json": { + "examples": { + "relationship": { + "$ref": "#/components/examples/RelationshipResponseExample" + } + }, + "schema": { + "description": "Encapsulated object reference to the data model for schema definition of Topology Relationship", + "type": "object" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get a specific Topology Relationship instance of a Topology Relationship type.", + "tags": [ + "Entities and relationships" + ] } - } }, - "description" : "Method Not Allowed" - }, - "406" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/domains/{domainName}/entities": { + "get": { + "description": "Get topology entities by domain, using a specified *targetFilter* as a query parameter.", + "operationId": "getEntitiesByDomain", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Use *targetFilter* to specify what needs to be returned in the REST response.", + "examples": { + "targetFilter": { + "value": "/sourceIds;/classifiers" + } + }, + "explode": true, + "in": "query", + "name": "targetFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "ScopeFilter is used to specify the conditions to be applied.", + "examples": { + "scopeFilter": { + "value": "/sourceIds[contains(@item,'ManagedElement=1')]" + } + }, + "explode": true, + "in": "query", + "name": "scopeFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "entities": { + "$ref": "#/components/examples/EntitiesResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Entities" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get entities by domain", + "tags": [ + "Entities and relationships" + ] } - } }, - "description" : "Not Acceptable" - }, - "409" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/schemas": { + "get": { + "description": "Get a list of all topology model schemas.", + "operationId": "getSchemas", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "examples": { + "domain": { + "value": "RAN" + } + }, + "explode": true, + "in": "query", + "name": "domain", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "schemas": { + "$ref": "#/components/examples/SchemasResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Schemas" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get a list of all pre defined schemas.", + "tags": [ + "Schemas" + ] + }, + "post": { + "deprecated": true, + "description": "Create a new schema. The request body contains the schema in YANG format.", + "operationId": "createSchema", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "multipart/form-data", + "example": "multipart/form-data", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MultipartFile" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created without response body" + }, + "400": { + "content": { + "application/problem+json": { + "example": { + "status": "400", + "title": "Bad Request", + "details": "The provided request is not valid" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "example": { + "status": "401", + "title": "Unauthorized request", + "details": "This request is unauthorized" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "example": { + "status": "403", + "title": "Request Forbidden", + "details": "This request is forbidden" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "409": { + "content": { + "application/problem+json": { + "example": { + "status": "409", + "title": "Conflicting request", + "details": "The request cannot be processed as the resource is in use." + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "500": { + "content": { + "application/problem+json": { + "example": { + "status": "500", + "title": "Internal Server Error", + "details": "Internal Server Error occurred" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Create a new schema.", + "tags": [ + "Schemas" + ] } - } }, - "description" : "Conflict" - }, - "411" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/schemas/{schemaName}/content": { + "get": { + "description": "Get the model schema by name.", + "operationId": "getSchemaByName", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "text/plain", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "schemaName", + "required": true, + "schema": { + "default": "o-ran-smo-teiv-ran", + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "text/plain": { + "examples": { + "schema": { + "$ref": "#/components/examples/SchemaResponseExample" + } + }, + "schema": { + "type": "string" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get the model schema.", + "tags": [ + "Schemas" + ] } - } }, - "description" : "Length Required" - }, - "413" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/user-defined-schemas": { + "get": { + "description": "Get a list of all user defined schemas.", + "operationId": "getUserDefinedSchemas", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDefinedSchemas" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get a list of all used defined schemas.", + "tags": [ + "User Defined Schemas" + ] + }, + "post": { + "description": "Create a new user defined schema. The request body contains the schema in YANG format.", + "operationId": "createUserDefinedSchema", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "multipart/form-data", + "example": "multipart/form-data", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MultipartFile" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDefinedSchema" + } + } + }, + "description": "Created", + "headers": { + "Location": { + "description": "Contains the URI of the newly created resource", + "explode": false, + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + } + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "411": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Length Required" + }, + "413": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Payload Too Large" + }, + "415": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unsupported Media Type" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Create a new user defined schema.", + "tags": [ + "User Defined Schemas" + ] } - } }, - "description" : "Payload Too Large" - }, - "414" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/user-defined-schemas/{schemaName}/content": { + "get": { + "description": "Get the user defined model schema by name.", + "operationId": "getUserDefinedSchemaByName", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "text/plain", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "schemaName", + "required": true, + "schema": { + "default": "o-ran-smo-teiv-ran", + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "text/plain": { + "examples": { + "schema": { + "$ref": "#/components/examples/SchemaResponseExample" + } + }, + "schema": { + "type": "string" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Get the user defined model schema.", + "tags": [ + "User Defined Schemas" + ] } - } }, - "description" : "URI Too Large" - }, - "415" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/schemas/{schemaName}": { + "delete": { + "deprecated": true, + "description": "Delete a schema.", + "operationId": "deleteSchema", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "schemaName", + "required": true, + "schema": { + "default": "o-ran-smo-teiv-ran", + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "example": { + "status": "400", + "title": "Bad Request", + "details": "The provided request is not valid" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "example": { + "status": "401", + "title": "Unauthorized request", + "details": "This request is unauthorized" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "example": { + "status": "403", + "title": "Request Forbidden", + "details": "This request is forbidden" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "500": { + "content": { + "application/problem+json": { + "example": { + "status": "500", + "title": "Internal Server Error", + "details": "Internal Server Error occurred" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Delete a schema.", + "tags": [ + "Schemas" + ] } - } }, - "description" : "Unsupported Media Type" - }, - "429" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/user-defined-schemas/{schemaName}": { + "delete": { + "description": "Delete a user defined schema.", + "operationId": "deleteUserDefinedSchema", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "schemaName", + "required": true, + "schema": { + "default": "o-ran-smo-teiv-ran", + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Delete a user defined schema.", + "tags": [ + "User Defined Schemas" + ] } - } }, - "description" : "Too Many Requests" - }, - "500" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/classifiers": { + "post": { + "deprecated": true, + "description": "Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.", + "operationId": "updateClassifierDeprecated", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "updateClassifier": { + "$ref": "#/components/examples/ClassifierMergeExample" + }, + "removeClassifier": { + "$ref": "#/components/examples/ClassifierDeleteExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Classifier" + } + } + }, + "required": true + }, + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "example": { + "status": "400", + "title": "Bad Request", + "details": "The provided request is not valid" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "example": { + "status": "401", + "title": "Unauthorized request", + "details": "This request is unauthorized" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "example": { + "status": "403", + "title": "Request Forbidden", + "details": "This request is forbidden" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "409": { + "content": { + "application/problem+json": { + "example": { + "status": "409", + "title": "Conflicting request", + "details": "The request cannot be processed as the resource is in use." + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "500": { + "content": { + "application/problem+json": { + "example": { + "status": "500", + "title": "Internal Server Error", + "details": "Internal Server Error occurred" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Update entities and/or relationships with classifier(s).", + "tags": [ + "Classifiers" + ] } - } }, - "description" : "Internal Server Error" - }, - "502" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/manage-classifiers": { + "post": { + "description": "Update entities and/or relationships with classifier(s).", + "operationId": "updateClassifier", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "updateClassifier": { + "$ref": "#/components/examples/ClassifierMergeExample" + }, + "removeClassifier": { + "$ref": "#/components/examples/ClassifierDeleteExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Classifier" + } + } + }, + "required": true + }, + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "411": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Length Required" + }, + "413": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Payload Too Large" + }, + "415": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unsupported Media Type" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update entities and/or relationships with classifier(s).", + "tags": [ + "Classifiers" + ] } - } }, - "description" : "Bad Gateway" - }, - "503" : { - "content" : { - "application/problem+json" : { - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/decorators": { + "post": { + "deprecated": true, + "description": "Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.", + "operationId": "updateDecoratorDeprecated", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "mergeDecorator": { + "$ref": "#/components/examples/DecoratorMergeExample" + }, + "removeDecorator": { + "$ref": "#/components/examples/DecoratorDeleteExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Decorator" + } + } + }, + "required": true + }, + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "example": { + "status": "400", + "title": "Bad Request", + "details": "The provided request is not valid" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "example": { + "status": "401", + "title": "Unauthorized request", + "details": "This request is unauthorized" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "example": { + "status": "403", + "title": "Request Forbidden", + "details": "This request is forbidden" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "409": { + "content": { + "application/problem+json": { + "example": { + "status": "409", + "title": "Conflicting request", + "details": "The request cannot be processed as the resource is in use." + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "500": { + "content": { + "application/problem+json": { + "example": { + "status": "500", + "title": "Internal Server Error", + "details": "Internal Server Error occurred" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Update entities and/or relationships with decorator(s).", + "tags": [ + "Decorators" + ] } - } }, - "description" : "Service Unavailable" - }, - "NotFound" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "404", - "title" : "Resource Not Found", - "details" : "The requested resource is not found" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/manage-decorators": { + "post": { + "description": "Update entities and/or relationships with decorator(s).", + "operationId": "updateDecorator", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "mergeDecorator": { + "$ref": "#/components/examples/DecoratorMergeExample" + }, + "removeDecorator": { + "$ref": "#/components/examples/DecoratorDeleteExample" + } + }, + "schema": { + "$ref": "#/components/schemas/Decorator" + } + } + }, + "required": true + }, + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "409": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "411": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Length Required" + }, + "413": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Payload Too Large" + }, + "415": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unsupported Media Type" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + } + }, + "summary": "Update entities and/or relationships with decorator(s).", + "tags": [ + "Decorators" + ] } - } }, - "description" : "Not Found" - }, - "Unauthorized" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "401", - "title" : "Unauthorized request", - "details" : "This request is unauthorized" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/groups": { + "get": { + "description": "Get all groups.", + "operationId": "getAllGroups", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Group name. If not specified, returns all the groups.", + "explode": true, + "in": "query", + "name": "name", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "groups": { + "$ref": "#/components/examples/GroupsResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/GroupsResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Get all groups.", + "tags": [ + "Groups" + ] + }, + "post": { + "description": "Create a group of entities and/or relationships in a static or dynamic way.", + "operationId": "createGroup", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "staticGroup": { + "$ref": "#/components/examples/CreateStaticGroupPayloadExample" + }, + "dynamicGroup": { + "$ref": "#/components/examples/CreateDynamicGroupGetEntitiesByDomainPayloadExample" + } + }, + "schema": { + "$ref": "#/components/schemas/CreateGroupPayload" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "examples": { + "static": { + "$ref": "#/components/examples/StaticGroupResponseExample" + }, + "dynamic": { + "$ref": "#/components/examples/DynamicGroupResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/GroupByIdResponse" + } + } + }, + "description": "Created" + }, + "400": { + "content": { + "application/problem+json": { + "example": { + "status": "400", + "title": "Bad Request", + "details": "The provided request is not valid" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "500": { + "content": { + "application/problem+json": { + "example": { + "status": "500", + "title": "Internal Server Error", + "details": "Internal Server Error occurred" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Create a new group.", + "tags": [ + "Groups" + ] } - } }, - "description" : "Unauthorized" - }, - "Forbidden" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "403", - "title" : "Request Forbidden", - "details" : "This request is forbidden" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/groups/{groupId}": { + "delete": { + "description": "Delete a group with specified id.", + "operationId": "deleteGroup", + "parameters": [ + { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Delete a group with specified id.", + "tags": [ + "Groups" + ] + }, + "get": { + "description": "Get a group with specified id.", + "operationId": "getGroupById", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "static": { + "$ref": "#/components/examples/StaticGroupResponseExample" + }, + "dynamic": { + "$ref": "#/components/examples/DynamicGroupResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/GroupByIdResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Get a group with specified id.", + "tags": [ + "Groups" + ] } - } }, - "description" : "Forbidden" - }, - "BadRequest" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/groups/{groupId}/name": { + "put": { + "description": "Update the name of a group.", + "operationId": "updateGroupName", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "GroupNameUpdatePayload": { + "$ref": "#/components/examples/UpdateGroupNamePayloadExample" + } + }, + "schema": { + "$ref": "#/components/schemas/UpdateGroupNamePayload" + } + } + }, + "required": true + }, + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Update the name of a group.", + "tags": [ + "Groups" + ] } - } }, - "description" : "Bad Request" - }, - "Conflict" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "409", - "title" : "Conflicting request", - "details" : "The request cannot be processed as the resource is in use." - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/groups/{groupId}/members": { + "get": { + "description": "Get the members of a group with specified id.", + "operationId": "getMembers", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "members": { + "$ref": "#/components/examples/MembersResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/MembersResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Get the members of a group with specified id.", + "tags": [ + "Groups" + ] } - } }, - "description" : "Conflict" - }, - "Created" : { - "description" : "Created without response body" - }, - "InternalServerError" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "/groups/{groupId}/provided-members": { + "get": { + "description": "Get the provided members of a static group with specified id.", + "operationId": "getProvidedMembers", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + { + "description": "Status can be present (or) not-present (or) invalid. If not specified, returns all members of the group.", + "explode": true, + "in": "query", + "name": "status", + "required": false, + "schema": { + "enum": [ + "present", + "not-present", + "invalid" + ], + "type": "string" + }, + "style": "form" + }, + { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "examples": { + "members": { + "$ref": "#/components/examples/ProvidedMembersResponseExample" + } + }, + "schema": { + "$ref": "#/components/schemas/MembersResponse" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Get the provided members of a static group with specified id.", + "tags": [ + "Groups" + ] } - } }, - "description" : "Internal Server Error" - }, - "NoContent" : { - "content" : { }, - "description" : "No Content" - } + "/groups/{groupId}/provided-members-operations": { + "post": { + "description": "Merge or remove members in an existing topology group. This operation is applicable for static group only.", + "operationId": "updateProvidedMembers", + "parameters": [ + { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + } + ], + "requestBody": { + "content": { + "application/json": { + "examples": { + "mergeMembersPayload": { + "$ref": "#/components/examples/MergeProvidedMembersPayloadExample" + }, + "deleteMembersPayload": { + "$ref": "#/components/examples/RemoveProvidedMembersPayloadExample" + } + }, + "schema": { + "$ref": "#/components/schemas/UpdateProvidedMembersPayload" + } + } + }, + "required": true + }, + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + } + }, + "summary": "Merge or remove members of a static group.", + "tags": [ + "Groups" + ] + } + } }, - "schemas" : { - "Classifier" : { - "properties" : { - "operation" : { - "enum" : [ "merge", "delete" ], - "type" : "string" - }, - "classifiers" : { - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "entityIds" : { - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "relationshipIds" : { - "items" : { - "type" : "string" - }, - "type" : "array" - } - }, - "title" : "Classifier", - "type" : "object" - }, - "Decorator" : { - "properties" : { - "operation" : { - "enum" : [ "merge", "delete" ], - "type" : "string" - }, - "decorators" : { - "additionalProperties" : true, - "description" : "Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by its schema.", - "type" : "object" - }, - "entityIds" : { - "items" : { - "type" : "string" - }, - "type" : "array" - }, - "relationshipIds" : { - "items" : { - "type" : "string" - }, - "type" : "array" - } - }, - "title" : "Decorator", - "type" : "object" - }, - "Domains" : { - "properties" : { - "items" : { - "items" : { - "$ref" : "#/components/schemas/Domains_items_inner" - }, - "type" : "array" - }, - "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" - } - }, - "title" : "Domains", - "type" : "object" - }, - "EntityTypes" : { - "properties" : { - "items" : { - "items" : { - "$ref" : "#/components/schemas/EntityTypes_items_inner" - }, - "type" : "array" - }, - "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" - } - }, - "title" : "EntityTypes", - "type" : "object" - }, - "Entities" : { - "properties" : { - "items" : { - "items" : { - "description" : "Refer to yang model for schema definition of topology entities", - "type" : "object" - }, - "type" : "array" - }, - "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" - } - }, - "required" : [ "items" ], - "title" : "Entities", - "type" : "object" - }, - "RelationshipTypes" : { - "properties" : { - "items" : { - "items" : { - "$ref" : "#/components/schemas/RelationshipTypes_items_inner" - }, - "type" : "array" - }, - "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" - } - }, - "title" : "RelationshipTypes", - "type" : "object" - }, - "Relationships" : { - "properties" : { - "items" : { - "items" : { - "description" : "'Encapsulated object reference to the data model for schema definition of Topology Relationships", - "type" : "object" - }, - "type" : "array" - }, - "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" - } - }, - "required" : [ "items" ], - "title" : "Relationships", - "type" : "object" - }, - "ProblemDetails" : { - "description" : "A problem detail to carry details in an HTTP response according to RFC 7807", - "properties" : { - "type" : { - "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type", - "type" : "string" - }, - "title" : { - "description" : "human-readable summary of the problem type", - "type" : "string" - }, - "status" : { - "description" : "the HTTP status code", - "type" : "number" - }, - "detail" : { - "description" : "human-readable explanation ", - "type" : "string" - }, - "instance" : { - "description" : "URI reference that identifies the specific occurrence of the problem", - "type" : "string" - } - }, - "type" : "object" - }, - "Href" : { - "properties" : { - "href" : { - "format" : "uri-template", - "type" : "string" - } - }, - "title" : "Href", - "type" : "object" - }, - "MultipartFile" : { - "properties" : { - "file" : { - "description" : "multipartFile", - "format" : "binary", - "type" : "string" - } - }, - "required" : [ "file" ], - "type" : "object" - }, - "Schema" : { - "properties" : { - "name" : { - "type" : "string" - }, - "domain" : { - "type" : "string" - }, - "revision" : { - "type" : "string" - }, - "content" : { - "$ref" : "#/components/schemas/Href" - } - }, - "title" : "Schema", - "type" : "object" - }, - "Schemas" : { - "properties" : { - "items" : { - "items" : { - "$ref" : "#/components/schemas/Schema" - }, - "type" : "array" - }, - "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" - } - }, - "title" : "Schemas", - "type" : "object" - }, - "UserDefinedSchema" : { - "properties" : { - "name" : { - "type" : "string" - }, - "domain" : { - "type" : "string" - }, - "revision" : { - "type" : "string" - }, - "content" : { - "$ref" : "#/components/schemas/Href" - } - }, - "title" : "UserDefinedSchema", - "type" : "object" - }, - "UserDefinedSchemas" : { - "properties" : { - "items" : { - "items" : { - "$ref" : "#/components/schemas/UserDefinedSchema" - }, - "type" : "array" - } - }, - "title" : "UserDefinedSchemas", - "type" : "object" - }, - "StaticEnum" : { - "enum" : [ "static" ], - "type" : "string" - }, - "DynamicEnum" : { - "enum" : [ "dynamic" ], - "type" : "string" - }, - "CreateGroupPayload" : { - "discriminator" : { - "propertyName" : "type" - }, - "oneOf" : [ { - "$ref" : "#/components/schemas/static" - }, { - "$ref" : "#/components/schemas/dynamic" - } ], - "title" : "CreateGroupPayload", - "type" : "object" - }, - "static" : { - "properties" : { - "name" : { - "description" : "A name of the topology group.", - "maxLength" : 150, - "minLength" : 1, - "type" : "string" - }, - "type" : { - "description" : "Allowed: static", - "type" : "string" - }, - "providedMembers" : { - "items" : { - "description" : "Refer to yang model for schema definition of topology objects.", - "type" : "object" - }, - "minItems" : 1, - "type" : "array" - } - }, - "required" : [ "name", "providedMembers", "type" ], - "title" : "CreateStaticGroupPayload", - "type" : "object" - }, - "dynamic" : { - "properties" : { - "name" : { - "description" : "A name of the topology group.", - "maxLength" : 150, - "minLength" : 1, - "type" : "string" - }, - "type" : { - "description" : "Allowed: dynamic", - "type" : "string" - }, - "criteria" : { - "$ref" : "#/components/schemas/Criteria" - } - }, - "required" : [ "criteria", "name", "type" ], - "title" : "CreateDynamicGroupPayload", - "type" : "object" - }, - "Criteria" : { - "discriminator" : { - "propertyName" : "queryType" - }, - "oneOf" : [ { - "$ref" : "#/components/schemas/getEntitiesByDomain" - }, { - "$ref" : "#/components/schemas/getEntitiesByType" - }, { - "$ref" : "#/components/schemas/getRelationshipsForEntityId" - }, { - "$ref" : "#/components/schemas/getRelationshipsByType" - } ], - "title" : "Criteria", - "type" : "object" - }, - "getEntitiesByDomain" : { - "properties" : { - "queryType" : { - "description" : "Allowed: getEntitiesByDomain", - "type" : "string" - }, - "domain" : { - "type" : "string" - }, - "targetFilter" : { - "type" : "string" - }, - "scopeFilter" : { - "type" : "string" - } - }, - "required" : [ "domain", "queryType" ], - "title" : "getEntitiesByDomain", - "type" : "object" - }, - "getEntitiesByType" : { - "properties" : { - "queryType" : { - "description" : "Allowed: getEntitiesByType", - "type" : "string" - }, - "domain" : { - "type" : "string" - }, - "entityTypeName" : { - "type" : "string" - }, - "targetFilter" : { - "type" : "string" - }, - "scopeFilter" : { - "type" : "string" - } - }, - "required" : [ "domain", "entityTypeName", "queryType" ], - "title" : "getEntitiesByType", - "type" : "object" - }, - "getRelationshipsForEntityId" : { - "properties" : { - "queryType" : { - "description" : "Allowed: getRelationshipsForEntityId", - "type" : "string" - }, - "domain" : { - "type" : "string" - }, - "entityTypeName" : { - "type" : "string" - }, - "entityId" : { - "type" : "string" - }, - "targetFilter" : { - "type" : "string" - }, - "scopeFilter" : { - "type" : "string" - } - }, - "required" : [ "domain", "entityId", "entityTypeName", "queryType" ], - "title" : "getRelationshipsForEntityId", - "type" : "object" - }, - "getRelationshipsByType" : { - "properties" : { - "queryType" : { - "description" : "Allowed: getRelationshipsByType", - "type" : "string" - }, - "domain" : { - "type" : "string" - }, - "relationshipTypeName" : { - "type" : "string" - }, - "targetFilter" : { - "type" : "string" - }, - "scopeFilter" : { - "type" : "string" - } - }, - "required" : [ "domain", "queryType", "relationshipTypeName" ], - "title" : "getRelationshipsByType", - "type" : "object" - }, - "GroupsResponse" : { - "properties" : { - "items" : { - "items" : { - "$ref" : "#/components/schemas/GroupResponse" - }, - "type" : "array" - }, - "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" - } - }, - "title" : "Groups", - "type" : "object" - }, - "GroupResponse" : { - "oneOf" : [ { - "$ref" : "#/components/schemas/StaticGroupResponse" - }, { - "$ref" : "#/components/schemas/DynamicGroupResponse" - } ], - "title" : "Group", - "type" : "object" - }, - "StaticGroupResponse" : { - "properties" : { - "id" : { - "description" : "The unique identifier of the topology group.", - "type" : "string" - }, - "name" : { - "description" : "The unique name of the topology group.", - "type" : "string" - }, - "type" : { - "$ref" : "#/components/schemas/StaticEnum" - }, - "members" : { - "$ref" : "#/components/schemas/Href" - }, - "providedMembers" : { - "$ref" : "#/components/schemas/Href" - } - }, - "required" : [ "id", "members", "name", "providedMembers", "type" ], - "title" : "StaticGroup", - "type" : "object" - }, - "DynamicGroupResponse" : { - "properties" : { - "id" : { - "description" : "The unique identifier of the topology group.", - "type" : "string" - }, - "name" : { - "description" : "The unique name of the topology group.", - "type" : "string" - }, - "type" : { - "$ref" : "#/components/schemas/DynamicEnum" - }, - "members" : { - "$ref" : "#/components/schemas/Href" - } - }, - "required" : [ "id", "members", "name", "type" ], - "title" : "DynamicGroup", - "type" : "object" - }, - "GroupByIdResponse" : { - "oneOf" : [ { - "$ref" : "#/components/schemas/StaticGroupByIdResponse" - }, { - "$ref" : "#/components/schemas/DynamicGroupByIdResponse" - } ], - "title" : "Group", - "type" : "object" - }, - "StaticGroupByIdResponse" : { - "properties" : { - "id" : { - "description" : "The unique identifier of the topology group.", - "type" : "string" - }, - "name" : { - "description" : "The unique name of the topology group.", - "type" : "string" - }, - "type" : { - "$ref" : "#/components/schemas/StaticEnum" - }, - "members" : { - "$ref" : "#/components/schemas/Href" - }, - "providedMembers" : { - "$ref" : "#/components/schemas/Href" - } - }, - "required" : [ "id", "members", "name", "providedMembers", "type" ], - "title" : "StaticGroup", - "type" : "object" - }, - "DynamicGroupByIdResponse" : { - "properties" : { - "id" : { - "description" : "The unique identifier of the topology group.", - "type" : "string" - }, - "name" : { - "description" : "The unique name of the topology group.", - "type" : "string" - }, - "type" : { - "$ref" : "#/components/schemas/DynamicEnum" - }, - "members" : { - "$ref" : "#/components/schemas/Href" - }, - "criteria" : { - "$ref" : "#/components/schemas/Criteria" - } + "components": { + "examples": { + "ClassifierMergeExample": { + "value": { + "operation": "merge", + "classifiers": [ + "module-x:Outdoor", + "module-y:Rural", + "module-z:Weekend" + ], + "entityIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" + ], + "relationshipIds": [ + "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" + ] + } + }, + "ClassifierDeleteExample": { + "value": { + "operation": "delete", + "classifiers": [ + "module-x:Outdoor", + "module-z:Weekend" + ], + "entityIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" + ], + "relationshipIds": [ + "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" + ] + } + }, + "DecoratorMergeExample": { + "value": { + "operation": "merge", + "decorators": { + "module-x:location": "Stockholm", + "module-y:vendor": "Ericsson" + }, + "entityIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" + ], + "relationshipIds": [ + "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" + ] + } + }, + "DecoratorDeleteExample": { + "value": { + "operation": "delete", + "decorators": { + "module-x:location": "Stockholm" + }, + "entityIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2" + ], + "relationshipIds": [ + "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" + ] + } + }, + "EntityResponseExample": { + "value": { + "o-ran-smo-teiv-ran:NRCellDU": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "attributes": { + "cellLocalId": 91, + "nCI": 91, + "nRPCI": 789, + "nRTAC": 456 + }, + "decorators": { + "location": "Stockholm" + }, + "classifiers": [ + "Rural" + ], + "sourceIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:cmHandle:395221E080CCF0FD1924103B15873814" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + } + }, + "EntitiesResponseExample": { + "value": { + "items": [ + { + "o-ran-smo-teiv-ran:GNBCUUPFunction": [ + { + "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=10,GNBCUUPFunction=10", + "attributes": { + "gNBId": 10, + "gNBIdLength": 2 + }, + "sourceIds": [ + "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=10,GNBCUUPFunction=10", + "urn:cmHandle:72FDA73D085F138FECC974CB91F1450E" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + }, + { + "o-ran-smo-teiv-ran:GNBCUUPFunction": [ + { + "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=13,GNBCUUPFunction=13", + "attributes": { + "gNBId": 13, + "gNBIdLength": 2 + }, + "sourceIds": [ + "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=13,GNBCUUPFunction=13", + "urn:cmHandle:E5196035D0B49A65B00EAA392B4EE155" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + }, + { + "o-ran-smo-teiv-ran:GNBCUUPFunction": [ + { + "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,GNBCUUPFunction=14", + "attributes": { + "gNBId": 14, + "gNBIdLength": 2 + }, + "sourceIds": [ + "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,GNBCUUPFunction=14", + "urn:cmHandle:D67C0BD04FA613BBFD176B24B68FD6A4" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + } + ], + "self": { + "href": "/domains/RAN/entities?offset=0&limit=3&targetFilter=/sourceIds;/attributes" + }, + "first": { + "href": "/domains/RAN/entities?offset=0&limit=3&targetFilter=/sourceIds;/attributes" + }, + "prev": { + "href": "/domains/RAN/entities?offset=0&limit=3&targetFilter=/sourceIds;/attributes" + }, + "next": { + "href": "/domains/RAN/entities?offset=3&limit=3&targetFilter=/sourceIds;/attributes" + }, + "last": { + "href": "/domains/RAN/entities?offset=33&limit=3&targetFilter=/sourceIds;/attributes" + }, + "totalCount": 3 + } + }, + "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,ODUFunction=1,NRCellDU=1", + "bSide": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1", + "sourceIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + } + }, + "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,ODUFunction=1,NRCellDU=1", + "bSide": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1", + "sourceIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=1" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + }, + { + "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,ODUFunction=1,NRCellDU=2", + "bSide": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=2", + "sourceIds": [ + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=2", + "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRSectorCarrier=2" + ], + "metadata": { + "reliabilityIndicator": "OK", + "firstDiscovered": "2025-01-07T12:20:12.24523200Z", + "lastModified": "2025-01-08T10:40:36.46156500Z" + } + } + ] + } + ], + "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=0&limit=500" + }, + "last": { + "href": "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500" + }, + "totalCount": 2 + } + }, + "EntityTypesResponseExample": { + "value": { + "items": [ + { + "name": "AntennaCapability", + "entities": { + "href": "/domains/RAN/entity-types/AntennaCapability/entities" + } + }, + { + "name": "ENodeBFunction", + "entities": { + "href": "/domains/RAN/entity-types/ENodeBFunction/entities" + } + }, + { + "name": "EUtranCell", + "entities": { + "href": "/domains/RAN/entity-types/EUtranCell/entities" + } + } + ], + "self": { + "href": "/domains/RAN/entity-types?offset=0&limit=3" + }, + "first": { + "href": "/domains/RAN/entity-types?offset=0&limit=3" + }, + "prev": { + "href": "/domains/RAN/entity-types?offset=0&limit=3" + }, + "next": { + "href": "/domains/RAN/entity-types?offset=3&limit=3" + }, + "last": { + "href": "/domains/RAN/entity-types?offset=9&limit=3" + }, + "totalCount": 11 + } + }, + "RelationshipTypesResponseExample": { + "value": { + "items": [ + { + "name": "MANAGEDELEMENT_MANAGES_ODUFUNCTION", + "relationships": { + "href": "/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_ODUFUNCTION/relationships" + } + }, + { + "name": "ODUFUNCTION_PROVIDES_NRCELLDU", + "relationships": { + "href": "/domains/RAN/relationship-types/ODUFUNCTION_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=3" + }, + "first": { + "href": "/domains/RAN/relationship-types?offset=0&limit=3" + }, + "prev": { + "href": "/domains/RAN/relationship-types?offset=0&limit=3" + }, + "next": { + "href": "/domains/RAN/relationship-types?offset=0&limit=3" + }, + "last": { + "href": "/domains/RAN/relationship-types?offset=0&limit=3" + }, + "totalCount": 3 + } + }, + "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" + } + }, + { + "name": "REL_EQUIPMENT_RAN", + "entityTypes": { + "href": "/domains/REL_EQUIPMENT_RAN/entity-types" + }, + "relationshipTypes": { + "href": "/domains/REL_EQUIPMENT_RAN/relationship-types" + } + }, + { + "name": "REL_OAM_RAN", + "entityTypes": { + "href": "/domains/REL_OAM_RAN/entity-types" + }, + "relationshipTypes": { + "href": "/domains/REL_OAM_RAN/relationship-types" + } + }, + { + "name": "TEIV", + "entityTypes": { + "href": "/domains/TEIV/entity-types" + }, + "relationshipTypes": { + "href": "/domains/TEIV/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=0&limit=500" + }, + "last": { + "href": "/domains?offset=0&limit=500" + }, + "totalCount": 6 + } + }, + "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 {\nyang-version 1.1;\nnamespace \"urn:o-ran:smo-teiv-ran\";\nprefix or-teiv-ran;\nimport o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }\nimport o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }\nimport _3gpp-common-yang-types { prefix types3gpp; }\norganization \"ORAN\";\ndescription\n\"Sample Model.\";\nrevision \"2024-05-24\" {\n description \"Initial revision.\"\n or-teiv-yext:label 0.1.0;\n}\nor-teiv-yext:domain RAN;\nlist ODUFunction {\n uses or-teiv-types:Top_Grp_Type;\n key id;\n container attributes {\n container dUpLMNId {\n uses types3gpp:PLMNId;\n }\n leaf gNBDUId {\n type uint32;\n }\n leaf gNBId {\n type uint32;\n }\n leaf gNBIdLength {\n type uint32;\n }\n }\n}\nlist NRCellDU {\n uses or-teiv-types:Top_Grp_Type;\n key id;\n container attributes {\n leaf cellLocalId {\n type uint32;\n }\n leaf nCI {\n type uint32;\n }\n leaf nRPCI {\n type uint32;\n }\n leaf nRTAC {\n type uint32;\n }\n }\n}\nlist NRSectorCarrier {\n uses or-teiv-types:Top_Grp_Type;\n key id;\n container attributes {\n leaf arfcnDL {\n type uint32;\n }\n leaf arfcnUL {\n type uint32;\n }\n leaf frequencyDL {\n type uint32;\n }\n leaf frequencyUL {\n type uint32;\n }\n leaf bSChannelBwDL {\n type uint32;\n }\n }\n }\n}\n" + }, + "CreateStaticGroupPayloadExample": { + "value": { + "name": "cell-filter-group-1", + "type": "static", + "providedMembers": [ + { + "o-ran-smo-teiv-ran:NRCellDU": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" + } + ] + }, + { + "o-ran-smo-teiv-ran:ODUFunction": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1" + } + ] + }, + { + "o-ran-smo-teiv-oam:ManagedElement": [ + { + "id": "urn:3gpp:dn:ManagedElement=1" + } + ] + }, + { + "o-ran-smo-teiv-ran:ODUFUNCTION_PROVIDES_NRCELLDU": [ + { + "id": "urn:o-ran:smo:teiv:sha512:ODUFUNCTION_PROVIDES_NRCELLDU=EA8BF964B4888BFD1991D8E2ECDFA7723118D3829C1378ACBB5484F9ADE328957641013EDF2BEC80CB8E4E0A46CC2D85B960EF25ABF61CC8601095948E368624" + } + ] + }, + { + "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [ + { + "id": "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=86084B5A80FAC7339117CEB91A4838FAC28C50AF00C9A13DF66FFA497356A8F440626A935B9621D4C833F0A6DE2722EDC9A312E506D80235A8C1BF54D8DFACC8" + } + ] + } + ] + } + }, + "CreateDynamicGroupGetEntitiesByDomainPayloadExample": { + "value": { + "name": "cell-filter-group-2", + "type": "dynamic", + "criteria": { + "queryType": "getEntitiesByDomain", + "domain": "RAN", + "targetFilter": "/NRCellDU/attributes(nCI)", + "scopeFilter": "/NRCellDU/attributes[@cellLocalId=1]" + } + } + }, + "GroupsResponseExample": { + "value": { + "items": [ + { + "id": "urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000", + "name": "cell-filter-group-1", + "type": "static", + "providedMembers": { + "href": "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/provided-members" + }, + "members": { + "href": "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/members" + } + }, + { + "id": "urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000", + "name": "cell-filter-group-2", + "type": "dynamic", + "members": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members" + } + } + ], + "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": 2 + } + }, + "MembersResponseExample": { + "value": { + "items": [ + { + "o-ran-smo-teiv-ran:NRCellDU": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" + } + ] + }, + { + "o-ran-smo-teiv-ran:ODUFunction": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1" + } + ] + }, + { + "o-ran-smo-teiv-oam:ManagedElement": [ + { + "id": "urn:3gpp:dn:ManagedElement=1" + } + ] + }, + { + "o-ran-smo-teiv-ran:ODUFUNCTION_PROVIDES_NRCELLDU": [ + { + "id": "urn:o-ran:smo:teiv:sha512:ODUFUNCTION_PROVIDES_NRCELLDU=EA8BF964B4888BFD1991D8E2ECDFA7723118D3829C1378ACBB5484F9ADE328957641013EDF2BEC80CB8E4E0A46CC2D85B960EF25ABF61CC8601095948E368624" + } + ] + }, + { + "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [ + { + "id": "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=86084B5A80FAC7339117CEB91A4838FAC28C50AF00C9A13DF66FFA497356A8F440626A935B9621D4C833F0A6DE2722EDC9A312E506D80235A8C1BF54D8DFACC8" + } + ] + } + ], + "self": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" + }, + "first": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" + }, + "prev": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" + }, + "next": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" + }, + "last": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members?offset=0&limit=500" + }, + "totalCount": 5 + } + }, + "ProvidedMembersResponseExample": { + "value": { + "items": [ + { + "o-ran-smo-teiv-ran:NRCellDU": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" + } + ] + }, + { + "o-ran-smo-teiv-ran:ODUFunction": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1" + } + ] + }, + { + "o-ran-smo-teiv-oam:ManagedElement": [ + { + "id": "urn:3gpp:dn:ManagedElement=1" + } + ] + }, + { + "o-ran-smo-teiv-ran:ODUFUNCTION_PROVIDES_NRCELLDU": [ + { + "id": "urn:o-ran:smo:teiv:sha512:ODUFUNCTION_PROVIDES_NRCELLDU=EA8BF964B4888BFD1991D8E2ECDFA7723118D3829C1378ACBB5484F9ADE328957641013EDF2BEC80CB8E4E0A46CC2D85B960EF25ABF61CC8601095948E368624" + } + ] + }, + { + "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_ODUFUNCTION": [ + { + "id": "urn:o-ran:smo:teiv:sha512:MANAGEDELEMENT_MANAGES_ODUFUNCTION=86084B5A80FAC7339117CEB91A4838FAC28C50AF00C9A13DF66FFA497356A8F440626A935B9621D4C833F0A6DE2722EDC9A312E506D80235A8C1BF54D8DFACC8" + } + ] + } + ], + "self": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" + }, + "first": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" + }, + "prev": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" + }, + "next": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" + }, + "last": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/provided-members?offset=0&limit=500" + }, + "totalCount": 5 + } + }, + "MergeProvidedMembersPayloadExample": { + "value": { + "operation": "merge", + "providedMembers": [ + { + "o-ran-smo-teiv-ran:NRCellDU": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" + } + ] + } + ] + } + }, + "RemoveProvidedMembersPayloadExample": { + "value": { + "operation": "remove", + "providedMembers": [ + { + "o-ran-smo-teiv-ran:NRCellDU": [ + { + "id": "urn:3gpp:dn:ManagedElement=1,ODUFunction=1,NRCellDU=1" + } + ] + } + ] + } + }, + "StaticGroupResponseExample": { + "value": { + "id": "urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000", + "name": "cell-filter-group-1", + "type": "static", + "providedMembers": { + "href": "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/provided-members" + }, + "members": { + "href": "/groups/urn:o-ran:smo:teiv:group=123e4567-e89b-12d3-a456-426614174000/members" + } + } + }, + "DynamicGroupResponseExample": { + "value": { + "id": "urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000", + "name": "cell-filter-group-2", + "type": "dynamic", + "criteria": { + "queryType": "getEntitiesByDomain", + "domain": "RAN", + "targetFilter": "/NRCellDU/attributes(nCI)", + "scopeFilter": "/NRCellDU/attributes[@cellLocalId=1]" + }, + "members": { + "href": "/groups/urn:o-ran:smo:teiv:group=550e8400-e29b-41d4-a716-446655440000/members" + } + } + }, + "UpdateGroupNamePayloadExample": { + "value": { + "name": "cell-filter-group-5" + } + } }, - "required" : [ "criteria", "id", "members", "name", "type" ], - "title" : "DynamicGroup", - "type" : "object" - }, - "MembersResponse" : { - "properties" : { - "items" : { - "items" : { - "description" : "Refer to yang model for schema definition of topology objects.", - "type" : "object" + "parameters": { + "acceptJsonInHeader": { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + "acceptYangJsonInHeader": { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "application/yang.data+json", + "example": "application/yang.data+json", + "type": "string" + }, + "style": "simple" + }, + "acceptPlainTextInHeader": { + "explode": false, + "in": "header", + "name": "Accept", + "required": true, + "schema": { + "default": "text/plain", + "type": "string" + }, + "style": "simple" + }, + "contentTypeMultipartFileInHeader": { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "multipart/form-data", + "example": "multipart/form-data", + "type": "string" + }, + "style": "simple" + }, + "contentTypeJsonInHeader": { + "explode": false, + "in": "header", + "name": "Content-Type", + "required": true, + "schema": { + "default": "application/json", + "example": "application/json", + "type": "string" + }, + "style": "simple" + }, + "offsetParam": { + "description": "Pagination offset.", + "explode": true, + "in": "query", + "name": "offset", + "required": false, + "schema": { + "default": 0, + "minimum": 0, + "type": "integer" + }, + "style": "form" + }, + "limitParam": { + "description": "Result limiter.", + "explode": true, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "default": 500, + "maximum": 500, + "minimum": 1, + "type": "integer" + }, + "style": "form" + }, + "domainNameInPath": { + "description": "domain name", + "explode": false, + "in": "path", + "name": "domainName", + "required": true, + "schema": { + "example": "RAN", + "type": "string" + }, + "style": "simple" + }, + "schemaNameInPath": { + "explode": false, + "in": "path", + "name": "schemaName", + "required": true, + "schema": { + "default": "o-ran-smo-teiv-ran", + "type": "string" + }, + "style": "simple" + }, + "groupIdInPath": { + "explode": false, + "in": "path", + "name": "groupId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + "entityIdInPath": { + "explode": false, + "in": "path", + "name": "entityId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + "relationshipIdInPath": { + "explode": false, + "in": "path", + "name": "relationshipId", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + "entityTypeNameInPath": { + "explode": false, + "in": "path", + "name": "entityTypeName", + "required": true, + "schema": { + "type": "string" + }, + "style": "simple" + }, + "relationshipTypeNameInPath": { + "explode": false, + "in": "path", + "name": "relationshipTypeName", + "required": true, + "schema": { + "example": "NRCELLDU_USES_NRSECTORCARRIER", + "type": "string" + }, + "style": "simple" }, - "type" : "array" - }, - "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" - } + "domainOptionalInQuery": { + "examples": { + "domain": { + "value": "RAN" + } + }, + "explode": true, + "in": "query", + "name": "domain", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "targetFilterOptionalInQuery": { + "description": "Use *targetFilter* to specify what needs to be returned in the REST response.", + "examples": { + "targetFilter": { + "value": "/sourceIds;/classifiers" + } + }, + "explode": true, + "in": "query", + "name": "targetFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "scopeFilterOptionalInQuery": { + "description": "ScopeFilter is used to specify the conditions to be applied.", + "examples": { + "scopeFilter": { + "value": "/sourceIds[contains(@item,'ManagedElement=1')]" + } + }, + "explode": true, + "in": "query", + "name": "scopeFilter", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + }, + "groupMembersStatusOptionalInQuery": { + "description": "Status can be present (or) not-present (or) invalid. If not specified, returns all members of the group.", + "explode": true, + "in": "query", + "name": "status", + "required": false, + "schema": { + "enum": [ + "present", + "not-present", + "invalid" + ], + "type": "string" + }, + "style": "form" + }, + "groupNameOptionalInQuery": { + "description": "Group name. If not specified, returns all the groups.", + "explode": true, + "in": "query", + "name": "name", + "required": false, + "schema": { + "type": "string" + }, + "style": "form" + } }, - "title" : "GroupMembers", - "type" : "object" - }, - "UpdateProvidedMembersPayload" : { - "properties" : { - "operation" : { - "description" : "The operation to be performed on the members of topology group.", - "enum" : [ "merge", "remove" ], - "type" : "string" - }, - "providedMembers" : { - "description" : "Members to be added or removed from the group.", - "items" : { - "description" : "Refer to yang model for schema definition of topology objects.", - "type" : "object" + "responses": { + "204": { + "content": { + + }, + "description": "No Content" + }, + "400": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "401": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "404": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "405": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Method Not Allowed" + }, + "406": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Acceptable" + }, + "409": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "411": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Length Required" + }, + "413": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Payload Too Large" + }, + "414": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "URI Too Large" + }, + "415": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unsupported Media Type" + }, + "429": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Too Many Requests" + }, + "500": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" + }, + "502": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Gateway" + }, + "503": { + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Service Unavailable" + }, + "NotFound": { + "content": { + "application/problem+json": { + "example": { + "status": "404", + "title": "Resource Not Found", + "details": "The requested resource is not found" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Not Found" + }, + "Unauthorized": { + "content": { + "application/problem+json": { + "example": { + "status": "401", + "title": "Unauthorized request", + "details": "This request is unauthorized" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Unauthorized" + }, + "Forbidden": { + "content": { + "application/problem+json": { + "example": { + "status": "403", + "title": "Request Forbidden", + "details": "This request is forbidden" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Forbidden" + }, + "BadRequest": { + "content": { + "application/problem+json": { + "example": { + "status": "400", + "title": "Bad Request", + "details": "The provided request is not valid" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Bad Request" + }, + "Conflict": { + "content": { + "application/problem+json": { + "example": { + "status": "409", + "title": "Conflicting request", + "details": "The request cannot be processed as the resource is in use." + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Conflict" + }, + "Created": { + "description": "Created without response body" + }, + "InternalServerError": { + "content": { + "application/problem+json": { + "example": { + "status": "500", + "title": "Internal Server Error", + "details": "Internal Server Error occurred" + }, + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + }, + "description": "Internal Server Error" }, - "minItems" : 1, - "type" : "array" - } - }, - "required" : [ "operation", "providedMembers" ], - "title" : "UpdateProvidedMembersPayload", - "type" : "object" - }, - "UpdateGroupNamePayload" : { - "properties" : { - "name" : { - "maxLength" : 150, - "minLength" : 1, - "type" : "string" - } + "NoContent": { + "content": { + + }, + "description": "No Content" + } }, - "required" : [ "name" ], - "title" : "UpdateGroupNamePayload", - "type" : "object" - }, - "Domains_items_inner" : { - "properties" : { - "domainName" : { - "type" : "string" - }, - "entityTypes" : { - "$ref" : "#/components/schemas/Href" - }, - "relationshipTypes" : { - "$ref" : "#/components/schemas/Href" - } + "schemas": { + "Classifier": { + "properties": { + "operation": { + "enum": [ + "merge", + "delete" + ], + "type": "string" + }, + "classifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "entityIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "relationshipIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "Classifier", + "type": "object" + }, + "Decorator": { + "properties": { + "operation": { + "enum": [ + "merge", + "delete" + ], + "type": "string" + }, + "decorators": { + "additionalProperties": true, + "description": "Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by its schema.", + "type": "object" + }, + "entityIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "relationshipIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "title": "Decorator", + "type": "object" + }, + "Domains": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/Domains_items_inner" + }, + "type": "array" + }, + "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" + } + }, + "title": "Domains", + "type": "object" + }, + "EntityTypes": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/EntityTypes_items_inner" + }, + "type": "array" + }, + "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" + } + }, + "title": "EntityTypes", + "type": "object" + }, + "Entities": { + "properties": { + "items": { + "items": { + "description": "Refer to yang model for schema definition of topology entities", + "type": "object" + }, + "type": "array" + }, + "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" + } + }, + "required": [ + "items" + ], + "title": "Entities", + "type": "object" + }, + "RelationshipTypes": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/RelationshipTypes_items_inner" + }, + "type": "array" + }, + "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" + } + }, + "title": "RelationshipTypes", + "type": "object" + }, + "Relationships": { + "properties": { + "items": { + "items": { + "description": "'Encapsulated object reference to the data model for schema definition of Topology Relationships", + "type": "object" + }, + "type": "array" + }, + "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" + } + }, + "required": [ + "items" + ], + "title": "Relationships", + "type": "object" + }, + "ProblemDetails": { + "description": "A problem detail to carry details in an HTTP response according to RFC 7807", + "properties": { + "type": { + "description": "a URI reference according to IETF RFC 3986 that identifies the problem type", + "type": "string" + }, + "title": { + "description": "human-readable summary of the problem type", + "type": "string" + }, + "status": { + "description": "the HTTP status code", + "type": "number" + }, + "detail": { + "description": "human-readable explanation ", + "type": "string" + }, + "instance": { + "description": "URI reference that identifies the specific occurrence of the problem", + "type": "string" + } + }, + "type": "object" + }, + "Href": { + "properties": { + "href": { + "format": "uri-template", + "type": "string" + } + }, + "title": "Href", + "type": "object" + }, + "MultipartFile": { + "properties": { + "file": { + "description": "multipartFile", + "format": "binary", + "type": "string" + } + }, + "required": [ + "file" + ], + "type": "object" + }, + "Schema": { + "properties": { + "name": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "revision": { + "type": "string" + }, + "content": { + "$ref": "#/components/schemas/Href" + } + }, + "title": "Schema", + "type": "object" + }, + "Schemas": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/Schema" + }, + "type": "array" + }, + "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" + } + }, + "title": "Schemas", + "type": "object" + }, + "UserDefinedSchema": { + "properties": { + "name": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "revision": { + "type": "string" + }, + "content": { + "$ref": "#/components/schemas/Href" + } + }, + "title": "UserDefinedSchema", + "type": "object" + }, + "UserDefinedSchemas": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/UserDefinedSchema" + }, + "type": "array" + } + }, + "title": "UserDefinedSchemas", + "type": "object" + }, + "StaticEnum": { + "enum": [ + "static" + ], + "type": "string" + }, + "DynamicEnum": { + "enum": [ + "dynamic" + ], + "type": "string" + }, + "CreateGroupPayload": { + "discriminator": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/static" + }, + { + "$ref": "#/components/schemas/dynamic" + } + ], + "title": "CreateGroupPayload", + "type": "object" + }, + "static": { + "properties": { + "name": { + "description": "A name of the topology group.", + "maxLength": 150, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "Allowed: static", + "type": "string" + }, + "providedMembers": { + "items": { + "description": "Refer to yang model for schema definition of topology objects.", + "type": "object" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "name", + "providedMembers", + "type" + ], + "title": "CreateStaticGroupPayload", + "type": "object" + }, + "dynamic": { + "properties": { + "name": { + "description": "A name of the topology group.", + "maxLength": 150, + "minLength": 1, + "type": "string" + }, + "type": { + "description": "Allowed: dynamic", + "type": "string" + }, + "criteria": { + "$ref": "#/components/schemas/Criteria" + } + }, + "required": [ + "criteria", + "name", + "type" + ], + "title": "CreateDynamicGroupPayload", + "type": "object" + }, + "Criteria": { + "discriminator": { + "propertyName": "queryType" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/getEntitiesByDomain" + }, + { + "$ref": "#/components/schemas/getEntitiesByType" + }, + { + "$ref": "#/components/schemas/getRelationshipsForEntityId" + }, + { + "$ref": "#/components/schemas/getRelationshipsByType" + } + ], + "title": "Criteria", + "type": "object" + }, + "getEntitiesByDomain": { + "properties": { + "queryType": { + "description": "Allowed: getEntitiesByDomain", + "type": "string" + }, + "domain": { + "type": "string" + }, + "targetFilter": { + "type": "string" + }, + "scopeFilter": { + "type": "string" + } + }, + "required": [ + "domain", + "queryType" + ], + "title": "getEntitiesByDomain", + "type": "object" + }, + "getEntitiesByType": { + "properties": { + "queryType": { + "description": "Allowed: getEntitiesByType", + "type": "string" + }, + "domain": { + "type": "string" + }, + "entityTypeName": { + "type": "string" + }, + "targetFilter": { + "type": "string" + }, + "scopeFilter": { + "type": "string" + } + }, + "required": [ + "domain", + "entityTypeName", + "queryType" + ], + "title": "getEntitiesByType", + "type": "object" + }, + "getRelationshipsForEntityId": { + "properties": { + "queryType": { + "description": "Allowed: getRelationshipsForEntityId", + "type": "string" + }, + "domain": { + "type": "string" + }, + "entityTypeName": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "targetFilter": { + "type": "string" + }, + "scopeFilter": { + "type": "string" + } + }, + "required": [ + "domain", + "entityId", + "entityTypeName", + "queryType" + ], + "title": "getRelationshipsForEntityId", + "type": "object" + }, + "getRelationshipsByType": { + "properties": { + "queryType": { + "description": "Allowed: getRelationshipsByType", + "type": "string" + }, + "domain": { + "type": "string" + }, + "relationshipTypeName": { + "type": "string" + }, + "targetFilter": { + "type": "string" + }, + "scopeFilter": { + "type": "string" + } + }, + "required": [ + "domain", + "queryType", + "relationshipTypeName" + ], + "title": "getRelationshipsByType", + "type": "object" + }, + "GroupsResponse": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/GroupResponse" + }, + "type": "array" + }, + "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" + } + }, + "title": "Groups", + "type": "object" + }, + "GroupResponse": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticGroupResponse" + }, + { + "$ref": "#/components/schemas/DynamicGroupResponse" + } + ], + "title": "Group", + "type": "object" + }, + "StaticGroupResponse": { + "properties": { + "id": { + "description": "The unique identifier of the topology group.", + "type": "string" + }, + "name": { + "description": "The unique name of the topology group.", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/StaticEnum" + }, + "members": { + "$ref": "#/components/schemas/Href" + }, + "providedMembers": { + "$ref": "#/components/schemas/Href" + } + }, + "required": [ + "id", + "members", + "name", + "providedMembers", + "type" + ], + "title": "StaticGroup", + "type": "object" + }, + "DynamicGroupResponse": { + "properties": { + "id": { + "description": "The unique identifier of the topology group.", + "type": "string" + }, + "name": { + "description": "The unique name of the topology group.", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/DynamicEnum" + }, + "members": { + "$ref": "#/components/schemas/Href" + } + }, + "required": [ + "id", + "members", + "name", + "type" + ], + "title": "DynamicGroup", + "type": "object" + }, + "GroupByIdResponse": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticGroupByIdResponse" + }, + { + "$ref": "#/components/schemas/DynamicGroupByIdResponse" + } + ], + "title": "Group", + "type": "object" + }, + "StaticGroupByIdResponse": { + "properties": { + "id": { + "description": "The unique identifier of the topology group.", + "type": "string" + }, + "name": { + "description": "The unique name of the topology group.", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/StaticEnum" + }, + "members": { + "$ref": "#/components/schemas/Href" + }, + "providedMembers": { + "$ref": "#/components/schemas/Href" + } + }, + "required": [ + "id", + "members", + "name", + "providedMembers", + "type" + ], + "title": "StaticGroup", + "type": "object" + }, + "DynamicGroupByIdResponse": { + "properties": { + "id": { + "description": "The unique identifier of the topology group.", + "type": "string" + }, + "name": { + "description": "The unique name of the topology group.", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/DynamicEnum" + }, + "members": { + "$ref": "#/components/schemas/Href" + }, + "criteria": { + "$ref": "#/components/schemas/Criteria" + } + }, + "required": [ + "criteria", + "id", + "members", + "name", + "type" + ], + "title": "DynamicGroup", + "type": "object" + }, + "MembersResponse": { + "properties": { + "items": { + "items": { + "description": "Refer to yang model for schema definition of topology objects.", + "type": "object" + }, + "type": "array" + }, + "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" + } + }, + "title": "GroupMembers", + "type": "object" + }, + "UpdateProvidedMembersPayload": { + "properties": { + "operation": { + "description": "The operation to be performed on the members of topology group.", + "enum": [ + "merge", + "remove" + ], + "type": "string" + }, + "providedMembers": { + "description": "Members to be added or removed from the group.", + "items": { + "description": "Refer to yang model for schema definition of topology objects.", + "type": "object" + }, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "operation", + "providedMembers" + ], + "title": "UpdateProvidedMembersPayload", + "type": "object" + }, + "UpdateGroupNamePayload": { + "properties": { + "name": { + "maxLength": 150, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "UpdateGroupNamePayload", + "type": "object" + }, + "Domains_items_inner": { + "properties": { + "domainName": { + "type": "string" + }, + "entityTypes": { + "$ref": "#/components/schemas/Href" + }, + "relationshipTypes": { + "$ref": "#/components/schemas/Href" + } + } + }, + "EntityTypes_items_inner": { + "properties": { + "entityTypeName": { + "type": "string" + }, + "entities": { + "$ref": "#/components/schemas/Href" + } + }, + "type": "object" + }, + "RelationshipTypes_items_inner": { + "properties": { + "relationshipTypeName": { + "type": "string" + }, + "relationships": { + "$ref": "#/components/schemas/Href" + } + }, + "type": "object" + } } - }, - "EntityTypes_items_inner" : { - "properties" : { - "entityTypeName" : { - "type" : "string" - }, - "entities" : { - "$ref" : "#/components/schemas/Href" - } - }, - "type" : "object" - }, - "RelationshipTypes_items_inner" : { - "properties" : { - "relationshipTypeName" : { - "type" : "string" - }, - "relationships" : { - "$ref" : "#/components/schemas/Href" - } - }, - "type" : "object" - } } - } -} \ No newline at end of file +} diff --git a/pgsql-schema-generator/pom.xml b/pgsql-schema-generator/pom.xml index a2b5481..808d2c0 100644 --- a/pgsql-schema-generator/pom.xml +++ b/pgsql-schema-generator/pom.xml @@ -39,12 +39,10 @@ jar - 17 - 17 - 17 + ${java.version} + ${java.version} + ${java.version} UTF-8 - 1.18.26 - 2.30.0 ${project.basedir}/src/test/resources/generate-defaults/import/ @@ -124,6 +122,19 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${version.lombok} + + + + com.mycila license-maven-plugin diff --git a/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/IndexType.java b/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/IndexType.java index 799d859..c7f8eec 100644 --- a/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/IndexType.java +++ b/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/IndexType.java @@ -21,10 +21,12 @@ package org.oran.smo.teiv.pgsqlgenerator; import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor +@NoArgsConstructor(force = true) public enum IndexType { GIN("CREATE INDEX IF NOT EXISTS \"%s\" ON teiv_data.\"%s\" USING GIN (\"%s\");"), GIN_TRGM_OPS_ON_LIST_AS_JSONB( diff --git a/pom.xml b/pom.xml index d431833..7bbbdc0 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.2 + 3.4.10 org.oran.smo @@ -52,23 +52,25 @@ - 17 + ${java.version} UTF-8 + 1.2.1-SNAPSHOT + 0.2.6 - 1.18.26 + 1.18.38 6.6 - 1.10.6 2.5.0 2.5.0 2.1.0 - - 42.5.4 + 42.5.6 3.18.6 1.0-FCS + 2.3 + https://forge.3gpp.org/rep/sa5/MnS/-/raw/Tag_Rel18_SA103/yang-models/ https://forge.3gpp.org/rep/sa5/MnS/-/raw/Tag_Rel18_SA98/yang-models/ @@ -80,27 +82,26 @@ 2023.0.0 5.2.0 1.18.0 + 7.7.0 - 2.30.0 + 2.46.1 1.0.1 2.2.1 3.0.2 3.2.3.RELEASE - 4.2 3.9.1.2184 3.1.0 4.13.0 0.43.4 + - 0.8.8 + 0.8.13 0.8 - 2.3 diff --git a/teiv/pom.xml b/teiv/pom.xml index 47c979d..5d40a2f 100644 --- a/teiv/pom.xml +++ b/teiv/pom.xml @@ -19,7 +19,7 @@ SPDX-License-Identifier: Apache-2.0 ============LICENSE_END========================================================= - --> +--> org.apache.httpcomponents.client5 httpclient5 - 5.4.1 + 5.4.4
org.oran.smo.yangtools.parser @@ -256,6 +256,19 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + ${version.lombok} + + + + org.openapitools openapi-generator-maven-plugin diff --git a/teiv/src/main/java/org/oran/smo/teiv/RequestFilter.java b/teiv/src/main/java/org/oran/smo/teiv/RequestFilter.java index d15d53e..de571ab 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/RequestFilter.java +++ b/teiv/src/main/java/org/oran/smo/teiv/RequestFilter.java @@ -50,7 +50,7 @@ public abstract class RequestFilter implements Filter { private String getErrorDetails(JsonProcessingException exception) { String details; if (exception instanceof ValueInstantiationException e && exception - .getCause()instanceof IllegalArgumentException cause) { + .getCause() instanceof IllegalArgumentException cause) { final Class targetType = e.getType().getRawClass(); details = cause.getMessage() + ". Invalid value for " + targetType.getSimpleName() + ", allowed values: " + List .of(targetType.getEnumConstants()); diff --git a/teiv/src/main/java/org/oran/smo/teiv/exposure/spi/impl/DataRepositoryImpl.java b/teiv/src/main/java/org/oran/smo/teiv/exposure/spi/impl/DataRepositoryImpl.java index 934ab10..c8a1cfc 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/exposure/spi/impl/DataRepositoryImpl.java +++ b/teiv/src/main/java/org/oran/smo/teiv/exposure/spi/impl/DataRepositoryImpl.java @@ -125,8 +125,8 @@ public class DataRepositoryImpl implements DataRepository { return runMethodSafe(() -> readDataDslContext.select(field(relationType.getTableName() + "." + String.format( QUOTED_STRING, relationType.getIdColumnName()))).from(table(relationType.getTableName())).where(field( relationType.getTableName() + "." + String.format(QUOTED_STRING, relationType.getIdColumnName())) - .isNotNull().and(finalCondition)).orderBy(field(String.format(QUOTED_STRING, "id"))).limit( - batchSize).fetchInto(String.class)); + .isNotNull().and(finalCondition)).orderBy(field(String.format(QUOTED_STRING, "id"))).limit( + batchSize).fetchInto(String.class)); } @Override @@ -142,8 +142,8 @@ public class DataRepositoryImpl implements DataRepository { return runMethodSafe(() -> readDataDslContext.select(field(relationType.getTableName() + "." + String.format( QUOTED_STRING, relationType.getIdColumnName()))).from(table(relationType.getTableName())).where(field( relationType.getTableName() + "." + String.format(QUOTED_STRING, relationType.getIdColumnName())) - .isNotNull().and(finalCondition)).orderBy(field(String.format(QUOTED_STRING, "id"))).limit( - batchSize).fetchInto(String.class)); + .isNotNull().and(finalCondition)).orderBy(field(String.format(QUOTED_STRING, "id"))).limit( + batchSize).fetchInto(String.class)); } @Override diff --git a/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/ConditionFactory.java b/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/ConditionFactory.java index 6071f0c..8dae6d0 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/ConditionFactory.java +++ b/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/ConditionFactory.java @@ -68,9 +68,9 @@ public class ConditionFactory { case ATTRIBUTES -> new AttributesCondition(); case RELATION -> new RelationCondition(); case ID -> switch (scopeObject.getTopologyObjectType()) { - case ASSOCIATION -> new AssociationCondition(); - default -> new IdCondition(); - }; + case ASSOCIATION -> new AssociationCondition(); + default -> new IdCondition(); + }; case NOT_NULL -> new AssociationCondition(); case CLASSIFIERS, SOURCE_IDS -> new ConsumerDataListCondition(); case DECORATORS -> new ConsumerDataMapCondition(); diff --git a/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/refiner/BasePathRefinement.java b/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/refiner/BasePathRefinement.java index ee99364..fd3f732 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/refiner/BasePathRefinement.java +++ b/teiv/src/main/java/org/oran/smo/teiv/exposure/teivpath/refiner/BasePathRefinement.java @@ -961,11 +961,11 @@ public class BasePathRefinement { filterCriteria.getFilterCriteriaList().forEach(criteria -> { if (criteria.getScope() instanceof EmptyLogicalBlock) { criteria.setScope(buildScopeLogicalBlockForRelationship(criteria)); - } else if (criteria.getScope()instanceof AndOrLogicalBlock andOrLogicalBlock) { + } else if (criteria.getScope() instanceof AndOrLogicalBlock andOrLogicalBlock) { AndOrLogicalBlock aolb = new AndLogicalBlock(); aolb.setChildren(List.of(andOrLogicalBlock, buildScopeLogicalBlockForRelationship(criteria))); criteria.setScope(aolb); - } else if (criteria.getScope()instanceof ScopeLogicalBlock scopeLogicalBlock) { + } else if (criteria.getScope() instanceof ScopeLogicalBlock scopeLogicalBlock) { AndOrLogicalBlock aolb = new AndLogicalBlock(); aolb.setChildren(List.of(scopeLogicalBlock, buildScopeLogicalBlockForRelationship(criteria))); criteria.setScope(aolb); diff --git a/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/DtoToJooqTest.java b/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/DtoToJooqTest.java index 4d6c458..24a9e04 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/DtoToJooqTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/DtoToJooqTest.java @@ -350,7 +350,7 @@ class DtoToJooqTest { Condition actualCondition = scopeObject.getCondition(); assertEquals(condition( "ST_CoveredBy(\"geo-location\", ST_GeographyFromText('POLYGON((12.3426 45.24568, 13.3426 45.24568, 12.3426 44.24568, 13.3426 44.24568))'))") - .toString(), actualCondition.toString()); + .toString(), actualCondition.toString()); } @Test @@ -362,7 +362,7 @@ class DtoToJooqTest { Condition actualCondition = scopeObject.getCondition(); assertEquals(condition( "ST_CoveredBy(\"geo-location\", ST_GeographyFromText('POLYGON((12.3426 45.24568, 13.3426 45.24568, 12.3426 44.24568, 13.3426 -44.24568, 35.2 45.6))'))") - .toString(), actualCondition.toString()); + .toString(), actualCondition.toString()); } @Test diff --git a/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/SelectBlockTest.java b/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/SelectBlockTest.java index 4273f20..0afa611 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/SelectBlockTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/exposure/teivpath/innerlanguage/SelectBlockTest.java @@ -201,8 +201,8 @@ public class SelectBlockTest { "teiv_data.\"AntennaModule\".\"REL_ID_SECTOR_GROUPS_ANTENNAMODULE\"").as(hashAlias( "o-ran-smo-teiv-rel-equipment-ran:SECTOR_GROUPS_ANTENNAMODULE.id")), PRIMITIVE, field( "teiv_data.\"AntennaModule\".\"REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE\"") - .as(hashAlias( - "o-ran-smo-teiv-rel-equipment-ran:SECTOR_GROUPS_ANTENNAMODULE.classifiers")), + .as(hashAlias( + "o-ran-smo-teiv-rel-equipment-ran:SECTOR_GROUPS_ANTENNAMODULE.classifiers")), CONTAINER, field("teiv_data.\"AntennaModule\".\"REL_FK_grouped-by-sector\"").as(hashAlias( "o-ran-smo-teiv-rel-equipment-ran:SECTOR_GROUPS_ANTENNAMODULE.aSide")), PRIMITIVE, field( "teiv_data.\"AntennaModule\".\"id\"").as(hashAlias( diff --git a/teiv/src/test/java/org/oran/smo/teiv/service/SchemaCleanUpServiceTest.java b/teiv/src/test/java/org/oran/smo/teiv/service/SchemaCleanUpServiceTest.java index 4228b71..a814326 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/service/SchemaCleanUpServiceTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/service/SchemaCleanUpServiceTest.java @@ -77,9 +77,9 @@ class SchemaCleanUpServiceTest { Collections.EMPTY_LIST); when(DATA_REPOSITORY.getRelationshipIdsForDecoratorDeletion(SchemaRegistry.getRelationTypeByName( "GNBCUUPFUNCTION_REALISED_BY_CLOUDNATIVEAPPLICATION"), Set.of("gnbcucp-gnbcuup-model:metadata"))) - .thenReturn(Collections.singletonList( - "urn:base64:R05CQ1VVUEZ1bmN0aW9uOkJGRUVBQzJDRTYwMjczQ0IwQTc4MzE5Q0MyMDFBN0ZFOlJFQUxJU0VEX0JZOkNsb3VkTmF0aXZlQXBwbGljYXRpb246QUQ0MkQ5MDQ5N0U5M0QyNzYyMTVERjZEM0I4OTlFMTc="), - Collections.EMPTY_LIST); + .thenReturn(Collections.singletonList( + "urn:base64:R05CQ1VVUEZ1bmN0aW9uOkJGRUVBQzJDRTYwMjczQ0IwQTc4MzE5Q0MyMDFBN0ZFOlJFQUxJU0VEX0JZOkNsb3VkTmF0aXZlQXBwbGljYXRpb246QUQ0MkQ5MDQ5N0U5M0QyNzYyMTVERjZEM0I4OTlFMTc="), + Collections.EMPTY_LIST); when(DATA_REPOSITORY.getRelationshipIdsForClassifierDeletion(SchemaRegistry.getRelationTypeByName( "MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"), Set.of("gnbcucp-gnbcuup-model:Weekend"))).thenReturn(Collections .singletonList( diff --git a/teiv/src/test/java/org/oran/smo/teiv/utils/schema/GeographyTest.java b/teiv/src/test/java/org/oran/smo/teiv/utils/schema/GeographyTest.java index 74e7f7d..2c1e83e 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/utils/schema/GeographyTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/utils/schema/GeographyTest.java @@ -51,7 +51,7 @@ class GeographyTest { assertEquals("POINT Z (19.040236 47.497913 123.9878)", new Geography( "{\"location\":{\"ellipsoid\":{\"longitude\": 19.040236, \"latitude\":47.497913 , \"height\": 123.9878}}}") - .toString()); + .toString()); assertEquals("POINT Z (19.040236 47.497913 123.9878)", new Geography( "{\"location\":{\"longitude\": 19.040236, \"latitude\":47.497913, \"height\": 123.9878}}}").toString()); diff --git a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/dom/test/JsonTest.java b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/dom/test/JsonTest.java index e70393e..ef1c39d 100644 --- a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/dom/test/JsonTest.java +++ b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/dom/test/JsonTest.java @@ -64,10 +64,10 @@ public class JsonTest extends YangTestCommon { assertTrue(leaf13.getValue() == null); final YangDataDomNode leaf14 = getChildDataDomNode(cont1, "leaf14"); - assertTrue(leaf14.getValue().equals(new Long(123))); + assertTrue(leaf14.getValue().equals(Long.valueOf(123))); final YangDataDomNode leaf15 = getChildDataDomNode(cont1, "leaf15"); - assertTrue(leaf15.getValue().equals(new Boolean(true))); + assertTrue(leaf15.getValue().equals(Boolean.valueOf(true))); final YangDataDomNode leaf21index0 = getChildDataDomNode(cont1, "leaflist21", 0); assertTrue(leaf21index0.getModuleName().equals("module1")); @@ -86,16 +86,16 @@ public class JsonTest extends YangTestCommon { assertTrue(leaf23index0.getValue() == null); final YangDataDomNode leaf23index1 = getChildDataDomNode(cont1, "leaflist23", 1); - assertTrue(leaf23index1.getValue().equals(new Boolean(true))); + assertTrue(leaf23index1.getValue().equals(Boolean.valueOf(true))); final YangDataDomNode leaf24index0 = getChildDataDomNode(cont1, "leaflist24", 0); - assertTrue(leaf24index0.getValue().equals(new Long(10))); + assertTrue(leaf24index0.getValue().equals(Long.valueOf(10))); final YangDataDomNode leaf24index1 = getChildDataDomNode(cont1, "leaflist24", 1); - assertTrue(leaf24index1.getValue().equals(new Long(-999))); + assertTrue(leaf24index1.getValue().equals(Long.valueOf(-999))); final YangDataDomNode leaf24index2 = getChildDataDomNode(cont1, "leaflist24", 2); - assertTrue(leaf24index2.getValue().equals(new Double(1234567890.123456))); + assertTrue(leaf24index2.getValue().equals(Double.valueOf(1234567890.123456))); // ======================================= @@ -108,7 +108,7 @@ public class JsonTest extends YangTestCommon { final YangDataDomNode leaf32 = getChildDataDomNode(cont2, "leaf32"); assertTrue(leaf32.getModuleName().equals("module99")); - assertTrue(leaf32.getValue().equals(new Boolean(false))); + assertTrue(leaf32.getValue().equals(Boolean.valueOf(false))); final YangDataDomNode cont3 = getChildDataDomNode(cont2, "cont3"); assertTrue(cont3.getModuleName().equals("module2")); @@ -126,7 +126,7 @@ public class JsonTest extends YangTestCommon { assertTrue(leaflist35index0.getValue() == null); final YangDataDomNode leaflist35index1 = getChildDataDomNode(cont3, "leaflist35", 1); - assertTrue(leaflist35index1.getValue().equals(new Boolean(true))); + assertTrue(leaflist35index1.getValue().equals(Boolean.valueOf(true))); // ======================================= @@ -134,31 +134,31 @@ public class JsonTest extends YangTestCommon { assertTrue(list5index0.getModuleName().equals("module5")); final YangDataDomNode list5index0leaf51 = getChildDataDomNode(list5index0, "leaf51"); - assertTrue(list5index0leaf51.getValue().equals(new Long(1234))); + assertTrue(list5index0leaf51.getValue().equals(Long.valueOf(1234))); final YangDataDomNode list5index0leaf52 = getChildDataDomNode(list5index0, "leaf52"); assertTrue(list5index0leaf52.getValue() == null); final YangDataDomNode list5index0leaf53index0 = getChildDataDomNode(list5index0, "leaflist53", 0); - assertTrue(list5index0leaf53index0.getValue().equals(new Boolean(false))); + assertTrue(list5index0leaf53index0.getValue().equals(Boolean.valueOf(false))); final YangDataDomNode list5index0leaf53index1 = getChildDataDomNode(list5index0, "leaflist53", 1); - assertTrue(list5index0leaf53index1.getValue().equals(new Boolean(true))); + assertTrue(list5index0leaf53index1.getValue().equals(Boolean.valueOf(true))); final YangDataDomNode list5index1 = getChildDataDomNode(root, "list5", 1); assertTrue(list5index1.getModuleName().equals("module5")); final YangDataDomNode list5index1leaf51 = getChildDataDomNode(list5index1, "leaf51"); - assertTrue(list5index1leaf51.getValue().equals(new Long(1235))); + assertTrue(list5index1leaf51.getValue().equals(Long.valueOf(1235))); final YangDataDomNode list5index1leaf52 = getChildDataDomNode(list5index1, "leaf52"); assertTrue(list5index1leaf52.getValue().equals(new String("hello"))); final YangDataDomNode list5index1leaf53index0 = getChildDataDomNode(list5index1, "leaflist53", 0); - assertTrue(list5index1leaf53index0.getValue().equals(new Boolean(false))); + assertTrue(list5index1leaf53index0.getValue().equals(Boolean.valueOf(false))); final YangDataDomNode list5index1leaf53index1 = getChildDataDomNode(list5index1, "leaflist53", 1); - assertTrue(list5index1leaf53index1.getValue().equals(new Boolean(false))); + assertTrue(list5index1leaf53index1.getValue().equals(Boolean.valueOf(false))); } @Test @@ -185,7 +185,7 @@ public class JsonTest extends YangTestCommon { final YangDataDomNodeAnnotationValue cont6anno2 = getDataDomNodeAnnotation(cont6, "anno2"); assertTrue(cont6anno2.getModuleName().equals("anno-module1")); assertTrue(cont6anno2.getName().equals("anno2")); - assertTrue(cont6anno2.getValue().equals(new Long(12345))); + assertTrue(cont6anno2.getValue().equals(Long.valueOf(12345))); final YangDataDomNode leaf61 = getChildDataDomNode(cont6, "leaf61"); assertTrue(leaf61.getValue().equals(new String("hello"))); @@ -194,7 +194,7 @@ public class JsonTest extends YangTestCommon { final YangDataDomNodeAnnotationValue leaf61anno61 = getDataDomNodeAnnotation(leaf61, "anno61"); assertTrue(leaf61anno61.getModuleName().equals("anno-module6")); assertTrue(leaf61anno61.getName().equals("anno61")); - assertTrue(leaf61anno61.getValue().equals(new Boolean(true))); + assertTrue(leaf61anno61.getValue().equals(Boolean.valueOf(true))); final YangDataDomNodeAnnotationValue leaf61anno62 = getDataDomNodeAnnotation(leaf61, "anno62"); assertTrue(leaf61anno62.getModuleName().equals("anno-module6")); @@ -212,12 +212,12 @@ public class JsonTest extends YangTestCommon { final YangDataDomNodeAnnotationValue leaflist81Index0anno81 = getDataDomNodeAnnotation(leaflist81Index0, "anno81"); assertTrue(leaflist81Index0anno81.getModuleName().equals("anno-module8")); assertTrue(leaflist81Index0anno81.getName().equals("anno81")); - assertTrue(leaflist81Index0anno81.getValue().equals(new Boolean(false))); + assertTrue(leaflist81Index0anno81.getValue().equals(Boolean.valueOf(false))); final YangDataDomNodeAnnotationValue leaflist81Index0anno82 = getDataDomNodeAnnotation(leaflist81Index0, "anno82"); assertTrue(leaflist81Index0anno82.getModuleName().equals("anno-module8")); assertTrue(leaflist81Index0anno82.getName().equals("anno82")); - assertTrue(leaflist81Index0anno82.getValue().equals(new Long(-99987))); + assertTrue(leaflist81Index0anno82.getValue().equals(Long.valueOf(-99987))); final YangDataDomNode leaflist81Index1 = getChildDataDomNode(cont6, "leaflist81", 1); assertTrue(leaflist81Index1.getValue().equals(new String("two"))); @@ -230,12 +230,12 @@ public class JsonTest extends YangTestCommon { final YangDataDomNodeAnnotationValue leaflist81Index2anno81 = getDataDomNodeAnnotation(leaflist81Index2, "anno81"); assertTrue(leaflist81Index2anno81.getModuleName().equals("anno-module8")); assertTrue(leaflist81Index2anno81.getName().equals("anno81")); - assertTrue(leaflist81Index2anno81.getValue().equals(new Boolean(true))); + assertTrue(leaflist81Index2anno81.getValue().equals(Boolean.valueOf(true))); final YangDataDomNodeAnnotationValue leaflist81Index2anno82 = getDataDomNodeAnnotation(leaflist81Index2, "anno82"); assertTrue(leaflist81Index2anno82.getModuleName().equals("anno-module8")); assertTrue(leaflist81Index2anno82.getName().equals("anno82")); - assertTrue(leaflist81Index2anno82.getValue().equals(new Double(12345678.12345678))); + assertTrue(leaflist81Index2anno82.getValue().equals(Double.valueOf(12345678.12345678))); final YangDataDomNode list7index0 = getChildDataDomNode(root, "list7", 0); assertTrue(list7index0.getModuleName().equals("module7")); @@ -399,7 +399,7 @@ public class JsonTest extends YangTestCommon { assertTrue(cont1anno2.getModuleName().equals("module4")); assertTrue(cont1anno2.getNamespace().equals("ns4")); assertTrue(cont1anno2.getName().equals("anno2")); - assertTrue(cont1anno2.getValue().equals(new Long(12345))); + assertTrue(cont1anno2.getValue().equals(Long.valueOf(12345))); final YangDataDomNode leaf11 = getChildDataDomNode(cont1, "leaf11"); assertTrue(leaf11.getModuleName().equals("module1")); diff --git a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/test/ComplexInstanceDataTest.java b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/test/ComplexInstanceDataTest.java index ca12b2c..357d22e 100644 --- a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/test/ComplexInstanceDataTest.java +++ b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/test/ComplexInstanceDataTest.java @@ -232,13 +232,13 @@ public class ComplexInstanceDataTest extends YangTestCommon { final LeafInstance leaf11data = getLeafInstance(cont1data, NS1, "leaf11"); assertTrue(leaf11data != null); - assertTrue(leaf11data.getValue().equals(new Long(42))); + assertTrue(leaf11data.getValue().equals(Long.valueOf(42))); final LeafInstance leaf12data = getLeafInstance(cont1data, NS1, "leaf12"); assertTrue(leaf12data != null); assertTrue(leaf12data.getDataDomNode().getNamespace().equals("test:module1")); assertTrue(leaf12data.getDataDomNode().getModuleName().equals("module1")); - assertTrue(leaf12data.getValue().equals(new Long(58))); + assertTrue(leaf12data.getValue().equals(Long.valueOf(58))); final LeafInstance leaf13data = getLeafInstance(cont1data, NS1, "leaf13"); assertTrue(leaf13data != null); @@ -258,7 +258,7 @@ public class ComplexInstanceDataTest extends YangTestCommon { assertTrue(leaf21data != null); assertTrue(leaf21data.getDataDomNode().getNamespace().equals("test:module1")); assertTrue(leaf21data.getDataDomNode().getModuleName().equals("module1")); - assertTrue(leaf21data.getValue().equals(new Long(4))); + assertTrue(leaf21data.getValue().equals(Long.valueOf(4))); ContainerInstance cont22data = getContainerInstance(list2data4, NS1, "cont22"); assertTrue(cont22data != null); @@ -288,7 +288,7 @@ public class ComplexInstanceDataTest extends YangTestCommon { leaf21data = getLeafInstance(list2data5, NS1, "leaf21"); assertTrue(leaf21data != null); - assertTrue(leaf21data.getValue().equals(new Long(5))); + assertTrue(leaf21data.getValue().equals(Long.valueOf(5))); cont22data = getContainerInstance(list2data5, NS1, "cont22"); assertTrue(cont22data != null); @@ -315,7 +315,7 @@ public class ComplexInstanceDataTest extends YangTestCommon { leaf21data = getLeafInstance(list2data6, NS1, "leaf21"); assertTrue(leaf21data != null); - assertTrue(leaf21data.getValue().equals(new Long(6))); + assertTrue(leaf21data.getValue().equals(Long.valueOf(6))); cont22data = getContainerInstance(list2data6, NS1, "cont22"); assertTrue(cont22data == null); diff --git a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/util/test/IdentityRefValueTest.java b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/util/test/IdentityRefValueTest.java index 2527713..e33f3c4 100644 --- a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/util/test/IdentityRefValueTest.java +++ b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/data/util/test/IdentityRefValueTest.java @@ -81,7 +81,7 @@ public class IdentityRefValueTest { * Equality */ assertTrue(new IdentityRefValue("ns1", "module1", "identity1").equals(null) == false); - assertTrue(new IdentityRefValue("ns1", "module1", "identity1").equals(new Integer(1)) == false); + assertTrue(new IdentityRefValue("ns1", "module1", "identity1").equals(Integer.valueOf(1)) == false); assertTrue(new IdentityRefValue("ns1", "module1", "identity1").equals(new IdentityRefValue("ns1", "module1", "identityXXX")) == false); diff --git a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/util/test/InstanceIdentifierTest.java b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/util/test/InstanceIdentifierTest.java index 2ae8fbc..758ecaa 100644 --- a/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/util/test/InstanceIdentifierTest.java +++ b/yang-parser/yang-parser-jar/src/test/java/org/oran/smo/yangtools/parser/util/test/InstanceIdentifierTest.java @@ -188,7 +188,7 @@ public class InstanceIdentifierTest { assertNull(ii9.getSteps().get(0).getPredicateLeafListMemberValue()); assertNotNull(ii9.getSteps().get(0).getPredicateListEntryOrLeafListMemberIndex()); - assertEquals(new Integer(4), ii9.getSteps().get(0).getPredicateListEntryOrLeafListMemberIndex()); + assertEquals(Integer.valueOf(4), ii9.getSteps().get(0).getPredicateListEntryOrLeafListMemberIndex()); // - - - - - - - - - - - - @@ -220,7 +220,7 @@ public class InstanceIdentifierTest { assertEquals("namespace2", ii11.getSteps().get(1).getDataNodeNsai().getNamespace()); assertNull(ii11.getSteps().get(1).getPredicateKeyValues()); assertNull(ii11.getSteps().get(1).getPredicateLeafListMemberValue()); - assertEquals(new Integer(5), ii11.getSteps().get(1).getPredicateListEntryOrLeafListMemberIndex()); + assertEquals(Integer.valueOf(5), ii11.getSteps().get(1).getPredicateListEntryOrLeafListMemberIndex()); assertEquals("node3", ii11.getSteps().get(2).getDataNodeNsai().getIdentifier()); assertEquals("namespace3", ii11.getSteps().get(2).getDataNodeNsai().getNamespace()); -- 2.16.6