From 63fd94ca1d4e05a0574b990e852290f96ae83162 Mon Sep 17 00:00:00 2001 From: JvD_Ericsson Date: Mon, 15 Jul 2024 11:51:36 +0100 Subject: [PATCH] Update openapi Issue-ID: SMO-161 Change-Id: Ic455a19c0c9960b8eaf000e08c86ffa0ea29b59c Signed-off-by: JvD_Ericsson --- docs/data-models-guide.rst | 8 +- .../{cloud-to-ran.rst => rel-cloud-ran.rst} | 2 +- ...{equipment-to-ran.rst => rel-equipment-ran.rst} | 2 +- .../{oam-to-cloud.rst => rel-oam-cloud.rst} | 2 +- .../{oam-to-ran.rst => rel-oam-ran.rst} | 2 +- docs/offeredapis/html/index.html | 10368 +++++++++---------- docs/offeredapis/index.html | 1255 ++- .../topology-exposure-inventory-openapi.json | 567 +- .../topology-exposure-inventory-openapi.yaml | 1062 +- ...ller.java => TopologyGroupsRestController.java} | 4 +- .../data/rest/controller/DataRestController.java | 3 +- .../rest/controller/GeoQueryRestController.java | 33 - .../java/org/oran/smo/teiv/utils/YangParser.java | 6 +- .../v1/topology-exposure-inventory-openapi.yaml | 1062 +- ...DataControllerE2EContainerizedNonXPathTest.java | 4 +- .../api/contract/TopologyExposureApiBase.java | 2 +- .../data/api/impl/ExposureMetricsTest.java | 2 +- .../rest/controller/DataRestControllerTest.java | 2 +- .../contracts/ran/schemas/getAllSchemas.groovy | 5 +- .../ran/schemas/getSchemasInDomain.groovy | 5 +- 20 files changed, 6744 insertions(+), 7652 deletions(-) rename docs/data-models/{cloud-to-ran.rst => rel-cloud-ran.rst} (94%) rename docs/data-models/{equipment-to-ran.rst => rel-equipment-ran.rst} (93%) rename docs/data-models/{oam-to-cloud.rst => rel-oam-cloud.rst} (94%) rename docs/data-models/{oam-to-ran.rst => rel-oam-ran.rst} (94%) rename teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/{CollectionsRestController.java => TopologyGroupsRestController.java} (91%) delete mode 100644 teiv/src/main/java/org/oran/smo/teiv/exposure/geography/rest/controller/GeoQueryRestController.java diff --git a/docs/data-models-guide.rst b/docs/data-models-guide.rst index 90c44b3..ba40fd5 100644 --- a/docs/data-models-guide.rst +++ b/docs/data-models-guide.rst @@ -17,9 +17,9 @@ Inventory. ./data-models/common-yang-types.rst ./data-models/equipment.rst ./data-models/ran.rst - ./data-models/equipment-to-ran.rst + ./data-models/rel-equipment-ran.rst ./data-models/oam.rst - ./data-models/oam-to-ran.rst + ./data-models/rel-oam-ran.rst ./data-models/cloud.rst - ./data-models/cloud-to-ran.rst - ./data-models/oam-to-cloud.rst + ./data-models/rel-cloud-ran.rst + ./data-models/rel-oam-cloud.rst diff --git a/docs/data-models/cloud-to-ran.rst b/docs/data-models/rel-cloud-ran.rst similarity index 94% rename from docs/data-models/cloud-to-ran.rst rename to docs/data-models/rel-cloud-ran.rst index a8176a4..217c299 100644 --- a/docs/data-models/cloud-to-ran.rst +++ b/docs/data-models/rel-cloud-ran.rst @@ -9,5 +9,5 @@ Relationship: CLOUD RAN .. image:: ../_static/data-model/cloud-ran-relationships.svg :width: 900 -.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang +.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang :language: yang diff --git a/docs/data-models/equipment-to-ran.rst b/docs/data-models/rel-equipment-ran.rst similarity index 93% rename from docs/data-models/equipment-to-ran.rst rename to docs/data-models/rel-equipment-ran.rst index 4bdbb45..9408a00 100644 --- a/docs/data-models/equipment-to-ran.rst +++ b/docs/data-models/rel-equipment-ran.rst @@ -9,5 +9,5 @@ Relationship: Equipment RAN .. image:: ../_static/data-model/equipment-ran.svg :width: 900 -.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang +.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang :language: yang diff --git a/docs/data-models/oam-to-cloud.rst b/docs/data-models/rel-oam-cloud.rst similarity index 94% rename from docs/data-models/oam-to-cloud.rst rename to docs/data-models/rel-oam-cloud.rst index e16af40..a7bfd8f 100644 --- a/docs/data-models/oam-to-cloud.rst +++ b/docs/data-models/rel-oam-cloud.rst @@ -8,5 +8,5 @@ Relationship: OAM CLOUD .. image:: ../_static/data-model/oam-cloud-relationships.svg -.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang +.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang :language: yang diff --git a/docs/data-models/oam-to-ran.rst b/docs/data-models/rel-oam-ran.rst similarity index 94% rename from docs/data-models/oam-to-ran.rst rename to docs/data-models/rel-oam-ran.rst index 853bb17..4dc6b60 100644 --- a/docs/data-models/oam-to-ran.rst +++ b/docs/data-models/rel-oam-ran.rst @@ -9,5 +9,5 @@ Relationship: OAM RAN .. image:: ../_static/data-model/oam-ran.svg :width: 900 -.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang +.. literalinclude:: ../../teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang :language: yang diff --git a/docs/offeredapis/html/index.html b/docs/offeredapis/html/index.html index 43de4a8..c9662b8 100644 --- a/docs/offeredapis/html/index.html +++ b/docs/offeredapis/html/index.html @@ -2,7 +2,7 @@ - Topology and Inventory API + Topology Exposure and Inventory API @@ -852,7 +852,7 @@ ul.nav-tabs { "type" : "string", "enum" : [ "merge", "delete" ] }, - "classifier" : { + "classifiers" : { "type" : "array", "items" : { "type" : "string" @@ -871,68 +871,6 @@ ul.nav-tabs { } } } -}; - defs["Collection"] = { - "type" : "object", - "properties" : { - "collectionName" : { - "type" : "string" - }, - "criteria" : { - "$ref" : "#/components/schemas/TopologySelection" - } - } -}; - defs["CollectionResponse"] = { - "type" : "object", - "properties" : { - "id" : { - "type" : "string" - }, - "collectionName" : { - "type" : "string" - }, - "criteria" : { - "$ref" : "#/components/schemas/CollectionResponse_criteria" - } - } -}; - defs["CollectionResponse_criteria"] = { - "oneOf" : [ { - "$ref" : "#/components/schemas/StaticSelection" - }, { - "$ref" : "#/components/schemas/DynamicSelection" - } ] -}; - defs["Collections"] = { - "title" : "Collections", - "type" : "object", - "properties" : { - "items" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/CollectionResponse" - } - }, - "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" - } - } }; defs["Decorator"] = { "title" : "Decorator", @@ -944,9 +882,8 @@ ul.nav-tabs { }, "decorators" : { "type" : "object", - "additionalProperties" : { - "type" : "string" - } + "additionalProperties" : true, + "description" : "Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema." }, "entityIds" : { "type" : "array", @@ -1119,22 +1056,75 @@ ul.nav-tabs { } } }; - defs["Href"] = { - "title" : "Href", + defs["Group"] = { "type" : "object", "properties" : { - "href" : { - "type" : "string", - "format" : "uri-template" + "groupName" : { + "type" : "string" + }, + "criteria" : { + "$ref" : "#/components/schemas/TopologySelection" } } }; - defs["QueryMessage"] = { - "title" : "Query", + defs["GroupResponse"] = { "type" : "object", "properties" : { - "query" : { + "id" : { + "type" : "string" + }, + "groupName" : { "type" : "string" + }, + "criteria" : { + "$ref" : "#/components/schemas/GroupResponse_criteria" + } + } +}; + defs["GroupResponse_criteria"] = { + "oneOf" : [ { + "$ref" : "#/components/schemas/StaticSelection" + }, { + "$ref" : "#/components/schemas/DynamicSelection" + } ] +}; + defs["Groups"] = { + "title" : "Groups", + "type" : "object", + "properties" : { + "items" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/GroupResponse" + } + }, + "self" : { + "$ref" : "#/components/schemas/Href" + }, + "first" : { + "$ref" : "#/components/schemas/Href" + }, + "prev" : { + "$ref" : "#/components/schemas/Href" + }, + "next" : { + "$ref" : "#/components/schemas/Href" + }, + "last" : { + "$ref" : "#/components/schemas/Href" + }, + "totalCount" : { + "type" : "integer" + } + } +}; + defs["Href"] = { + "title" : "Href", + "type" : "object", + "properties" : { + "href" : { + "type" : "string", + "format" : "uri-template" } } }; @@ -1218,10 +1208,7 @@ ul.nav-tabs { "type" : "string" }, "domain" : { - "type" : "array", - "items" : { - "type" : "string" - } + "type" : "string" }, "revision" : { "type" : "string" @@ -1303,22 +1290,6 @@ ul.nav-tabs {
  • updateClassifier
  • - -
  • - createCollection -
  • -
  • - deleteCollection -
  • -
  • - getAllCollections -
  • -
  • - getCollection -
  • -
  • - updateCollection -
  • updateDecorator @@ -1351,10 +1322,6 @@ ul.nav-tabs {
  • getTopologyRelationshipTypes
  • - -
  • - geoQueryTopologyAcrossDomains -
  • createSchema @@ -1368,13 +1335,29 @@ ul.nav-tabs {
  • getSchemas
  • + +
  • + createGroup +
  • +
  • + deleteGroup +
  • +
  • + getAllGroups +
  • +
  • + getGroup +
  • +
  • + updateGroup +
  • -

    Topology and Inventory API

    +

    Topology Exposure and Inventory API

    @@ -1384,30 +1367,90 @@ ul.nav-tabs {
    Version: 0.11.0

    -

    Topology and Inventory data is the information that represents entities in a telecommunications network and the relationships between them that provide insight into a particular aspect of the network of importance to specific use cases. Topology and Inventory data can be derived from inventory, configuration, or other data.

    -

    Topology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data.

    -

    Entities are enabling the modelling and storage of complex network infrastructure and relationships.

    -

    Relationships are a uni-directional connection between two entities, one of which is the originating side (A-side) and the other is the terminating side (B-side). The order of the sides matters since it defines the relationship itself which must be unique

    -

    Topology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests.

    +

    Topology Exposure and Inventory data is the information that represents entities +in a telecommunications network and the relationships between them that +provide insight into a particular aspect of the network of importance to +specific use cases. Topology and Inventory data can be derived from +inventory, configuration, or other data.

    +

    Topology Exposure and Inventory supports several topology domains. A domain is a +grouping of topology and inventory entities that handles topology and +inventory data.

    +

    Entities are enabling the modelling and storage of complex network +infrastructure and relationships.

    +

    A relationship is a bi-directional connection between two entities, one +of which is the originating side (A-side) and the other is the +terminating side (B-side). The order of the sides matters since it +defines the relationship itself which must be unique.

    +

    Classifier (also known as tag or label) permits the association of a +well defined user specified string with an entity or relationship.

    +

    Decorators are user-defined attributes (key-value pairs) which can +be applied to topology entities and relationships.

    +

    Topology Exposure and Inventory API provides the capabilities to fetch topology +data. Using the filtering options, it is possible to define more specific +query requests.

    Querying simple entities

    -

    EntityType is used as the root of the queries (from here referred as RootObject). Every other object, either targetFilter or scopeFilter, has to relate to the RootObject. The queries are constructed starting from the RootObject and all other objects are joined to it. If there is no connection between the RootObject and the other object(s), the query will not get constructed. The RootObject still can be retrieved and filtered using the /attributes.

    -

    | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | -|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------| -| To return the ids for all instances of the entityType used in the query. |  GNBDUFunction | | | All ids of every GNBDUFunction | -| To return all attributes of every instance of the entityType used in the query. |  GNBDUFunction |  /attributes | | All GNBDUFunctions with every attribute | -| To return every instance of the entityType 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. |  GNBDUFunction |  /attributes(gNBId)
       OR
    /attributes/gNBId | | All FDNs of every GNBDUFunction | -| To return every instance of the entityType used in the query, but only the attributes that were defined in the targetFilter parameter.
    Case 1: The attributes must be separated by a comma "," in case of using parenthesis "()".
    Case 2: The attributes must be separated by a semicolon ";" in case of using slash "/".
    Note: The attributes must be valid targetFilter of the object. |  GNBDUFunction |  /attributes(gNBId, gNBIdLength)
       OR
    /attributes/gNBId; /attributes/gNBIdLength | | All Ids and FDNs of every GNBDUFunction | -| To return the ids for all instances of the entityType used in the query, that matches the given attribute in the scopeFilter parameter.
    Note: The attribute must be a valid field of the object. |  GNBDUFunction | | /attributes[contains (@fdn, "/SubNetwork=Ireland/")] | Unique set of ids of GNBDUFunctions, where fdn contains "SubNetwork=Ireland" | -| To return the ids for all instances of the entityType used in the query, that matches the given attributes in the scopeFilter parameter.
    Note: the entityType and the object in the scopeFilter parameter must match, and the attributes must be valid field or fields of the object. The attributes must be separated by a comma ",". |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | -| To return the ids for all instances of the entityType used in the query, that satisfies every condition in one of the tags in the scopeFilter parameter. A tag is a complete unit of scopeFilter parameter surrounded by square brackets.
    Note: The attributes must be valid field or fields of the object. |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111]
       OR
    /attributes[@gNBIdLength=3 and @gNBId=112] | Unique set of ids of GNBDUFunctions, where where the gNBIdLength equals 3 and the gNBId is either 111 or 112 |

    +

    The entityTypeName is used as the root of the queries (from here +referred to as RootObject). Every other object, either in targetFilter or +scopeFilter, has to relate to the RootObject. The queries are +constructed starting from the RootObject and all other objects are joined +to it. If there is no connection between the RootObject and the other +object(s), the query is not constructed. The RootObject still can be +retrieved and filtered using the /attributes.

    +

    | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | +|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| +| To return the ids for all instances of the entityTypeName used in the query. | RAN | GNBDUFunction | | | All ids of every GNBDUFunction | +| To return all attributes of every instance of the entityTypeName used in the query. | RAN | GNBDUFunction | /attributes | | All GNBDUFunctions with every attribute | +| To return every instance of the entityTypeName used in the query, but only the attribute that was defined in the targetFilter parameter.
    Note: The attribute must be a valid field of the object. | RAN | GNBDUFunction | /attributes(gNBId) | | All gNBIds of every GNBDUFunction | +| To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the targetFilter parameter.
    Note: The attributes must be separated by a comma "," when using parenthesis "()". | RAN | GNBDUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every GNBDUFunction | +| To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the scopeFilter parameter. | RAN | GNBDUFunction | | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where sourceIds contains SubNetwork=Ireland | +| To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the scopeFilter parameter.
    Note: The attributes must be separated by a AND or OR". | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | +| To return the ids for all instances of the entityTypeName used in the query, that satisfies one of the conditions in the scopeFilter parameter. A condition is a complete unit of scopeFilter parameter surrounded by square brackets.
    Note: Multiple conditions can be given in the scopeFilter separated by a semicolon ";" to represent AND, or a pipe symbol "|" to represent OR. | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3] | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 or the sourceIds contains an item with "SubNetwork=Ireland" |

    Querying connected entities

    -

    It is possible to get information about directly connected objects as well. If entityType is present in the targetFilter parameter, the query provides information about that entityType itself.

    -

    | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | -|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| -| To return the ids for all instances of the entityType in the targetFilter parameter, if they are directly related to the queried entityType. |  GNBDUFunction |  /NRCellDU | | Unique set of ids of NRCellDUs that relates to GNBDUFunctions directly with any relationship type | -| To return the ids for all instances of the entityTypes in the targetFilter parameter, if they are directly related to the entityType. |  GNBDUFunction |  /NRCellDU ;  /NRSectorCarrier | | Unique set of ids of NRCellDUs and NRSectorCarriers that relates to GNBDUFunctions directly with any relationship type | -| To return the ids for all instances of the queried entityType that has one or more direct relationships with the entityType specified in the scopeFilter parameter. |  GNBDUFunction | | /AntennaCapability | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability with any relationship type | -| To return the ids for all instances of the queried entityType that has one or more direct relationships with at least one of the entityTypes specified in the scopeFilter parameter. |  GNBDUFunction | | /AntennaCapability
       OR
    /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type |

    +

    The entityTypeName is used as the root of the queries.

    +

    | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | +|:-----------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| To return the ids for all instances of an entityTypeName related by an association. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement | All ENodeBFunction entities that are managed by any Managed Element. | +| To return the ids for all instances of an entityTypeName related by an association to another entity specified by its id. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All ENodeBFunction entities that are managed by by the Managed Element urn:3gpp:dn: ManagedElement=1. | +| To return the attributes for all instances of an entityTypeName related by one or more associations to other entities specified by their id. | REL_OAM_RAN | ENodeBFunction | /attributes | /attributes [@enbId=1] ; /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as 1, managed by the Managed Element urn:3gpp:dn: ManagedElement=1 or urn:3gpp:dn: ManagedElement=2, and provides EuTranCell urn:3gpp:dn: ManagedElement=1, EUtranCell=2. |

    +

    Querying entities for relationships

    +

    The entityTypeName is used as the root of the queries.

    +

    | Use case | domainName | entityTypeName | entityId | targetFilter | scopeFilter | Query result | +|:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| To return the relationships for a given entity specified by its id. | RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | | All relations for the GNBDUFunction with id urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1. | +| To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION | | All MANAGEDELEMENT _MANAGES _GNBDUFUNCTION relations for the GNBDUFunction with id urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1. | +| To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT _MANAGES _GNBDUFUNCTION relations for the GNBDUFunction with id urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 where the managed element is urn:3gpp:dn: ManagedElement=1. |

    +

    Querying on relationships

    +

    Here, the relationshipTypeName is used as the root of the queries.

    +

    | Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result | +|:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------| +| To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. | +| To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association managed-by-managedElement to ManagedElement urn:3gpp:dn: ManagedElement=1. |

    +

    Querying on classifiers and decorators

    +

    The domainName is used as the root of the queries.

    +

    | Use case | domainName | targetFilter | scopeFilter | Query result | +|:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------| +| Return all related entity IDs that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'gnbdu-function-model:Indoor'] | All the entity IDs that are classified with "gnbdu-function-model:Indoor" in RAN domain. | +| Return all related entity IDs that are partially matched for the given classifier with given domain name. | RAN | | /classifiers[contains(@item, 'Ind')] | All the entity IDs that are partially matched with "Ind" in RAN domain. | +| Return all related entity IDs that are exactly matched with the key-value pair that specified decorators with given domain name. | RAN | | /decorators[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata = 'Stockholm'" in RAN domain. | +| Return all related entity IDs that are exactly matched with key parameter where the value of the decorator is unknown with given domain name. | RAN | | /decorators[contains(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. |

    +

    The entityName is used as the root of the queries.

    +

    | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Return all related entity IDs and classifiers. | NRCellDU | | /classifiers | | All NRCellDU IDs and classifiers. | +| Return all related entity IDs and decorators. | NRCellDU | | /decorators | | All NRCellDU IDs and decorators. | +| Return all related entity IDs that are exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-function-model:Indoor". | +| Return all related entity IDs and classifiers that are partially matched for the given classifier. | NRCellDU | | /classifiers | /classifiers[contains(@item, 'Ind')] | All NRCellDU IDs and classifiers partially contains the text "Ind". | +| Return all related entity IDs and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'. | +| Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU | | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind". |

    +

    The relationshipTypeName is used as the root of the queries.

    +

    | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Return all related relationships IDs and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers. | +| Return all related relationships IDs and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators. | +| Return all related relationship IDs that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". | +| Return all related relationships IDs and classifiers that are partially matched for the given classifier. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | /classifiers[contains(@item, 'Ind')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind". | +| Return all related relationships IDs and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'. | +| Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind". |

    @@ -1424,10 +1467,10 @@ ul.nav-tabs {

    -

    Update entities and/or relationships with classifier(s).

    +

    Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.


    -
    /classifiers
    +
    /classifiers

    Usage and SDK Samples

    @@ -1449,12 +1492,12 @@ ul.nav-tabs {
    -
    curl -X PUT \
    +                            
    curl -X POST \
      -H "Accept: application/problem+json" \
      -H "Content-Type: application/json" \
      "https://localhost/topology-inventory/v1alpha11/classifiers" \
      -d '{
    -  "classifier" : [ "classifier", "classifier" ],
    +  "classifiers" : [ "classifiers", "classifiers" ],
       "relationshipIds" : [ "relationshipIds", "relationshipIds" ],
       "operation" : "merge",
       "entityIds" : [ "entityIds", "entityIds" ]
    @@ -1554,10 +1597,10 @@ Classifier *classifier = ; //
                                 
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                              
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.ClassifiersApi()
    +var api = new TopologyExposureAndInventoryApi.ClassifiersApi()
     var accept = application/json; // {String} 
     var contentType = application/json; // {String} 
     var classifier = ; // {Classifier} 
    @@ -2141,7 +2184,7 @@ $(document).ready(function() {
             "$ref" : "#/components/schemas/ErrorMessage"
           },
           "example" : {
    -        "status" : "409'",
    +        "status" : "409",
             "title" : "Conflicting request",
             "details" : "The request cannot be processed as the resource is in use."
           }
    @@ -2269,77 +2312,78 @@ $(document).ready(function() {
                           

    -
    -

    Collections

    -
    -
    +
    +

    Decorators

    +
    +
    -

    createCollection

    -

    Create a collection.

    +

    updateDecorator

    +

    Update entities and/or relationships with decorator(s).

    -

    Create a collection.

    +

    Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.


    -
    /collections
    +
    /decorators

    Usage and SDK Samples

    -
    +
    curl -X POST \
    - -H "Accept: application/json,application/problem+json" \
    + -H "Accept: application/problem+json" \
      -H "Content-Type: application/json" \
    - "https://localhost/topology-inventory/v1alpha11/collections" \
    + "https://localhost/topology-inventory/v1alpha11/decorators" \
      -d '{
    -  "criteria" : {
    -    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +  "decorators" : {
    +    "key" : ""
       },
    -  "collectionName" : "collectionName"
    +  "relationshipIds" : [ "relationshipIds", "relationshipIds" ],
    +  "operation" : "merge",
    +  "entityIds" : [ "entityIds", "entityIds" ]
     }'
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.CollectionsApi;
    +import org.openapitools.client.api.DecoratorsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class CollectionsApiExample {
    +public class DecoratorsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        DecoratorsApi apiInstance = new DecoratorsApi();
             String accept = application/json; // String | 
             String contentType = application/json; // String | 
    -        Collection collection = ; // Collection | 
    +        Decorator decorator = ; // Decorator | 
     
             try {
    -            CollectionResponse result = apiInstance.createCollection(accept, contentType, collection);
    -            System.out.println(result);
    +            apiInstance.updateDecorator(accept, contentType, decorator);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#createCollection");
    +            System.err.println("Exception when calling DecoratorsApi#updateDecorator");
                 e.printStackTrace();
             }
         }
    @@ -2347,66 +2391,62 @@ public class CollectionsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
     final String contentType = new String(); // String | 
    -final Collection collection = new Collection(); // Collection | 
    +final Decorator decorator = new Decorator(); // Decorator | 
     
     try {
    -    final result = await api_instance.createCollection(accept, contentType, collection);
    +    final result = await api_instance.updateDecorator(accept, contentType, decorator);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->createCollection: $e\n');
    +    print('Exception when calling DefaultApi->updateDecorator: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.CollectionsApi;
    +                          
    +
    import org.openapitools.client.api.DecoratorsApi;
     
    -public class CollectionsApiExample {
    +public class DecoratorsApiExample {
         public static void main(String[] args) {
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        DecoratorsApi apiInstance = new DecoratorsApi();
             String accept = application/json; // String | 
             String contentType = application/json; // String | 
    -        Collection collection = ; // Collection | 
    +        Decorator decorator = ; // Decorator | 
     
             try {
    -            CollectionResponse result = apiInstance.createCollection(accept, contentType, collection);
    -            System.out.println(result);
    +            apiInstance.updateDecorator(accept, contentType, decorator);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#createCollection");
    +            System.err.println("Exception when calling DecoratorsApi#updateDecorator");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
    +DecoratorsApi *apiInstance = [[DecoratorsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
     String *contentType = application/json; //  (default to application/json)
    -Collection *collection = ; // 
    +Decorator *decorator = ; // 
     
    -// Create a collection.
    -[apiInstance createCollectionWith:accept
    +// Update entities and/or relationships with decorator(s).
    +[apiInstance updateDecoratorWith:accept
         contentType:contentType
    -    collection:collection
    -              completionHandler: ^(CollectionResponse output, NSError* error) {
    -    if (output) {
    -        NSLog(@"%@", output);
    -    }
    +    decorator:decorator
    +              completionHandler: ^(NSError* error) {
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -2414,30 +2454,30 @@ Collection *collection = ; //
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.CollectionsApi()
    +var api = new TopologyExposureAndInventoryApi.DecoratorsApi()
     var accept = application/json; // {String} 
     var contentType = application/json; // {String} 
    -var collection = ; // {Collection} 
    +var decorator = ; // {Decorator} 
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully. Returned data: ' + data);
    +    console.log('API called successfully.');
       }
     };
    -api.createCollection(accept, contentType, collection, callback);
    +api.updateDecorator(accept, contentType, decorator, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -2446,23 +2486,22 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class createCollectionExample
    +    public class updateDecoratorExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new CollectionsApi();
    +            var apiInstance = new DecoratorsApi();
                 var accept = application/json;  // String |  (default to application/json)
                 var contentType = application/json;  // String |  (default to application/json)
    -            var collection = new Collection(); // Collection | 
    +            var decorator = new Decorator(); // Decorator | 
     
                 try {
    -                // Create a collection.
    -                CollectionResponse result = apiInstance.createCollection(accept, contentType, collection);
    -                Debug.WriteLine(result);
    +                // Update entities and/or relationships with decorator(s).
    +                apiInstance.updateDecorator(accept, contentType, decorator);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling CollectionsApi.createCollection: " + e.Message );
    +                Debug.Print("Exception when calling DecoratorsApi.updateDecorator: " + e.Message );
                 }
             }
         }
    @@ -2470,46 +2509,44 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\CollectionsApi();
    +$api_instance = new OpenAPITools\Client\Api\DecoratorsApi();
     $accept = application/json; // String | 
     $contentType = application/json; // String | 
    -$collection = ; // Collection | 
    +$decorator = ; // Decorator | 
     
     try {
    -    $result = $api_instance->createCollection($accept, $contentType, $collection);
    -    print_r($result);
    +    $api_instance->updateDecorator($accept, $contentType, $decorator);
     } catch (Exception $e) {
    -    echo 'Exception when calling CollectionsApi->createCollection: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling DecoratorsApi->updateDecorator: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::CollectionsApi;
    +use WWW::OPenAPIClient::DecoratorsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
    +my $api_instance = WWW::OPenAPIClient::DecoratorsApi->new();
     my $accept = application/json; # String | 
     my $contentType = application/json; # String | 
    -my $collection = WWW::OPenAPIClient::Object::Collection->new(); # Collection | 
    +my $decorator = WWW::OPenAPIClient::Object::Decorator->new(); # Decorator | 
     
     eval {
    -    my $result = $api_instance->createCollection(accept => $accept, contentType => $contentType, collection => $collection);
    -    print Dumper($result);
    +    $api_instance->updateDecorator(accept => $accept, contentType => $contentType, decorator => $decorator);
     };
     if ($@) {
    -    warn "Exception when calling CollectionsApi->createCollection: $@\n";
    +    warn "Exception when calling DecoratorsApi->updateDecorator: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -2517,29 +2554,28 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.CollectionsApi()
    +api_instance = openapi_client.DecoratorsApi()
     accept = application/json # String |  (default to application/json)
     contentType = application/json # String |  (default to application/json)
    -collection =  # Collection | 
    +decorator =  # Decorator | 
     
     try:
    -    # Create a collection.
    -    api_response = api_instance.create_collection(accept, contentType, collection)
    -    pprint(api_response)
    +    # Update entities and/or relationships with decorator(s).
    +    api_instance.update_decorator(accept, contentType, decorator)
     except ApiException as e:
    -    print("Exception when calling CollectionsApi->createCollection: %s\n" % e)
    + print("Exception when calling DecoratorsApi->updateDecorator: %s\n" % e)
    -
    -
    extern crate CollectionsApi;
    +                            
    +
    extern crate DecoratorsApi;
     
     pub fn main() {
         let accept = application/json; // String
         let contentType = application/json; // String
    -    let collection = ; // Collection
    +    let decorator = ; // Decorator
     
    -    let mut context = CollectionsApi::Context::default();
    -    let result = client.createCollection(accept, contentType, collection, &context).wait();
    +    let mut context = DecoratorsApi::Context::default();
    +    let result = client.updateDecorator(accept, contentType, decorator, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -2565,7 +2601,7 @@ pub fn main() {
     
     
     
    -    
    +
    @@ -2585,7 +2621,7 @@ pub fn main() { -
    +
    @@ -2609,7 +2645,7 @@ pub fn main() { Name Description - collection * + decorator *

    -
    +
    @@ -2663,50 +2696,34 @@ $(document).ready(function() {

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    +

    EntitiesAndRelationships

    +
    +
    -

    deleteCollection

    -

    Delete a collection with specified id.

    +

    getAllDomains

    +

    Get all the available topology domains.

    -

    Delete a collection with specified id.

    +

    Get all the available topology domains.


    -
    /collections/{collectionId}
    +
    /domains

    Usage and SDK Samples

    -
    -
    curl -X DELETE \
    - -H "Accept: application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/collections/{collectionId}"
    +                          
    +
    curl -X GET \
    + -H "Accept: application/json,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/domains?offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.CollectionsApi;
    +import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    -        String collectionId = collectionId_example; // String | 
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            apiInstance.deleteCollection(accept, collectionId);
    +            Domains result = apiInstance.getAllDomains(accept, offset, limit);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#deleteCollection");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllDomains");
                 e.printStackTrace();
             }
         }
    @@ -3219,58 +3241,66 @@ public class CollectionsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String collectionId = new String(); // String | 
    +final Integer offset = new Integer(); // Integer | Pagination offset.
    +final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.deleteCollection(accept, collectionId);
    +    final result = await api_instance.getAllDomains(accept, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->deleteCollection: $e\n');
    +    print('Exception when calling DefaultApi->getAllDomains: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.CollectionsApi;
    +                          
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    -        String collectionId = collectionId_example; // String | 
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            apiInstance.deleteCollection(accept, collectionId);
    +            Domains result = apiInstance.getAllDomains(accept, offset, limit);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#deleteCollection");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllDomains");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
    +EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *collectionId = collectionId_example; //  (default to null)
    +Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    +Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Delete a collection with specified id.
    -[apiInstance deleteCollectionWith:accept
    -    collectionId:collectionId
    -              completionHandler: ^(NSError* error) {
    +// Get all the available topology domains.
    +[apiInstance getAllDomainsWith:accept
    +    offset:offset
    +    limit:limit
    +              completionHandler: ^(Domains output, NSError* error) {
    +    if (output) {
    +        NSLog(@"%@", output);
    +    }
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -3278,29 +3308,32 @@ String *collectionId = collectionId_example; //  (default to null)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.CollectionsApi()
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
     var accept = application/json; // {String} 
    -var collectionId = collectionId_example; // {String} 
    +var opts = {
    +  'offset': 56, // {Integer} Pagination offset.
    +  'limit': 56 // {Integer} Result limiter.
    +};
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully.');
    +    console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.deleteCollection(accept, collectionId, callback);
    +api.getAllDomains(accept, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -3309,21 +3342,23 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class deleteCollectionExample
    +    public class getAllDomainsExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new CollectionsApi();
    +            var apiInstance = new EntitiesAndRelationshipsApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var collectionId = collectionId_example;  // String |  (default to null)
    +            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    +            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Delete a collection with specified id.
    -                apiInstance.deleteCollection(accept, collectionId);
    +                // Get all the available topology domains.
    +                Domains result = apiInstance.getAllDomains(accept, offset, limit);
    +                Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling CollectionsApi.deleteCollection: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getAllDomains: " + e.Message );
                 }
             }
         }
    @@ -3331,42 +3366,46 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\CollectionsApi();
    +$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
     $accept = application/json; // String | 
    -$collectionId = collectionId_example; // String | 
    +$offset = 56; // Integer | Pagination offset.
    +$limit = 56; // Integer | Result limiter.
     
     try {
    -    $api_instance->deleteCollection($accept, $collectionId);
    +    $result = $api_instance->getAllDomains($accept, $offset, $limit);
    +    print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling CollectionsApi->deleteCollection: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getAllDomains: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::CollectionsApi;
    +use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
    +my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
     my $accept = application/json; # String | 
    -my $collectionId = collectionId_example; # String | 
    +my $offset = 56; # Integer | Pagination offset.
    +my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    $api_instance->deleteCollection(accept => $accept, collectionId => $collectionId);
    +    my $result = $api_instance->getAllDomains(accept => $accept, offset => $offset, limit => $limit);
    +    print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling CollectionsApi->deleteCollection: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getAllDomains: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -3374,26 +3413,29 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.CollectionsApi()
    +api_instance = openapi_client.EntitiesAndRelationshipsApi()
     accept = application/json # String |  (default to application/json)
    -collectionId = collectionId_example # String |  (default to null)
    +offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    +limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Delete a collection with specified id.
    -    api_instance.delete_collection(accept, collectionId)
    +    # Get all the available topology domains.
    +    api_response = api_instance.get_all_domains(accept, offset=offset, limit=limit)
    +    pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling CollectionsApi->deleteCollection: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getAllDomains: %s\n" % e)
    -
    -
    extern crate CollectionsApi;
    +                            
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let collectionId = collectionId_example; // String
    +    let offset = 56; // Integer
    +    let limit = 56; // Integer
     
    -    let mut context = CollectionsApi::Context::default();
    -    let result = client.deleteCollection(accept, collectionId, &context).wait();
    +    let mut context = EntitiesAndRelationshipsApi::Context::default();
    +    let result = client.getAllDomains(accept, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -3408,17 +3450,18 @@ pub fn main() {
     
                               

    Parameters

    -
    Path parameters
    + +
    Header parameters
    - - - - - + + + + +
    NameDescription
    collectionId*
    NameDescription
    Accept* -
    +
    @@ -3436,120 +3479,74 @@ pub fn main() {
    -
    Header parameters
    + + +
    Query parameters
    - + -
    Name Description
    Accept*
    offset -
    +
    - String + Integer +
    +Pagination offset. +
    -
    - Required -
    + limit + +
    +
    +
    + + Integer + + +
    +Result limiter. +
    +
    +
    +
    + + +

    Responses

    -

    -

    +

    +

    - - - - - -
    -
    -
    - -
    - -
    -
    -

    -

    - -

    -
    -
    +
    +
    -

    getAllCollections

    -

    Get all collections.

    +

    getAllRelationshipsForEntityId

    +

    Get all relationships for entity type name with specified id. Specified id represents the entity instance.

    -

    Get all collections.

    +

    Get all relationships for entity type name with specified id. Specified id represents the entity instance.


    -
    /collections
    +
    /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships

    Usage and SDK Samples

    -
    +
    curl -X GET \
      -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/collections?offset=56&limit=56"
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]&offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.CollectionsApi;
    +import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String entityTypeName = entityTypeName_example; // String | 
    +        String entityId = entityId_example; // String | 
    +        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +        String scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            Collections result = apiInstance.getAllCollections(accept, offset, limit);
    +            RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#getAllCollections");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllRelationshipsForEntityId");
                 e.printStackTrace();
             }
         }
    @@ -4010,63 +4012,83 @@ public class CollectionsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    +final String domainName = new String(); // String | domain name
    +final String entityTypeName = new String(); // String | 
    +final String entityId = new String(); // String | 
    +final String targetFilter = new String(); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +final String scopeFilter = new String(); // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     final Integer offset = new Integer(); // Integer | Pagination offset.
     final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getAllCollections(accept, offset, limit);
    +    final result = await api_instance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getAllCollections: $e\n');
    +    print('Exception when calling DefaultApi->getAllRelationshipsForEntityId: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.CollectionsApi;
    +                          
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String entityTypeName = entityTypeName_example; // String | 
    +        String entityId = entityId_example; // String | 
    +        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +        String scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            Collections result = apiInstance.getAllCollections(accept, offset, limit);
    +            RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#getAllCollections");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllRelationshipsForEntityId");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
    +EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    +String *domainName = domainName_example; // domain name (default to null)
    +String *entityTypeName = entityTypeName_example; //  (default to null)
    +String *entityId = entityId_example; //  (default to null)
    +String *targetFilter = /attributes(nCI,nRPCI); // Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    +String *scopeFilter = /attributes[@nRTAC=310]; // Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
     Integer *offset = 56; // Pagination offset. (optional) (default to 0)
     Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get all collections.
    -[apiInstance getAllCollectionsWith:accept
    +// Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    +[apiInstance getAllRelationshipsForEntityIdWith:accept
    +    domainName:domainName
    +    entityTypeName:entityTypeName
    +    entityId:entityId
    +    targetFilter:targetFilter
    +    scopeFilter:scopeFilter
         offset:offset
         limit:limit
    -              completionHandler: ^(Collections output, NSError* error) {
    +              completionHandler: ^(RelationshipsResponseMessage output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -4077,13 +4099,18 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.CollectionsApi()
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
     var accept = application/json; // {String} 
    +var domainName = domainName_example; // {String} domain name
    +var entityTypeName = entityTypeName_example; // {String} 
    +var entityId = entityId_example; // {String} 
     var opts = {
    +  'targetFilter': /attributes(nCI,nRPCI), // {String} Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +  'scopeFilter': /attributes[@nRTAC=310], // {String} Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
       'offset': 56, // {Integer} Pagination offset.
       'limit': 56 // {Integer} Result limiter.
     };
    @@ -4095,14 +4122,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getAllCollections(accept, opts, callback);
    +api.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -4111,23 +4138,28 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getAllCollectionsExample
    +    public class getAllRelationshipsForEntityIdExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new CollectionsApi();
    +            var apiInstance = new EntitiesAndRelationshipsApi();
                 var accept = application/json;  // String |  (default to application/json)
    +            var domainName = domainName_example;  // String | domain name (default to null)
    +            var entityTypeName = entityTypeName_example;  // String |  (default to null)
    +            var entityId = entityId_example;  // String |  (default to null)
    +            var targetFilter = /attributes(nCI,nRPCI);  // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional)  (default to null)
    +            var scopeFilter = /attributes[@nRTAC=310];  // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional)  (default to null)
                 var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
                 var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get all collections.
    -                Collections result = apiInstance.getAllCollections(accept, offset, limit);
    +                // Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    +                RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling CollectionsApi.getAllCollections: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getAllRelationshipsForEntityId: " + e.Message );
                 }
             }
         }
    @@ -4135,46 +4167,56 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\CollectionsApi();
    +$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
     $accept = application/json; // String | 
    +$domainName = domainName_example; // String | domain name
    +$entityTypeName = entityTypeName_example; // String | 
    +$entityId = entityId_example; // String | 
    +$targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +$scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     $offset = 56; // Integer | Pagination offset.
     $limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getAllCollections($accept, $offset, $limit);
    +    $result = $api_instance->getAllRelationshipsForEntityId($accept, $domainName, $entityTypeName, $entityId, $targetFilter, $scopeFilter, $offset, $limit);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling CollectionsApi->getAllCollections: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::CollectionsApi;
    +use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
    +my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
     my $accept = application/json; # String | 
    +my $domainName = domainName_example; # String | domain name
    +my $entityTypeName = entityTypeName_example; # String | 
    +my $entityId = entityId_example; # String | 
    +my $targetFilter = /attributes(nCI,nRPCI); # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +my $scopeFilter = /attributes[@nRTAC=310]; # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     my $offset = 56; # Integer | Pagination offset.
     my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getAllCollections(accept => $accept, offset => $offset, limit => $limit);
    +    my $result = $api_instance->getAllRelationshipsForEntityId(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, entityId => $entityId, targetFilter => $targetFilter, scopeFilter => $scopeFilter, offset => $offset, limit => $limit);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling CollectionsApi->getAllCollections: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -4182,29 +4224,39 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.CollectionsApi()
    +api_instance = openapi_client.EntitiesAndRelationshipsApi()
     accept = application/json # String |  (default to application/json)
    +domainName = domainName_example # String | domain name (default to null)
    +entityTypeName = entityTypeName_example # String |  (default to null)
    +entityId = entityId_example # String |  (default to null)
    +targetFilter = /attributes(nCI,nRPCI) # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    +scopeFilter = /attributes[@nRTAC=310] # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
     offset = 56 # Integer | Pagination offset. (optional) (default to 0)
     limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get all collections.
    -    api_response = api_instance.get_all_collections(accept, offset=offset, limit=limit)
    +    # Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    +    api_response = api_instance.get_all_relationships_for_entity_id(accept, domainName, entityTypeName, entityId, targetFilter=targetFilter, scopeFilter=scopeFilter, offset=offset, limit=limit)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling CollectionsApi->getAllCollections: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: %s\n" % e)
    -
    -
    extern crate CollectionsApi;
    +                            
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
         let accept = application/json; // String
    +    let domainName = domainName_example; // String
    +    let entityTypeName = entityTypeName_example; // String
    +    let entityId = entityId_example; // String
    +    let targetFilter = /attributes(nCI,nRPCI); // String
    +    let scopeFilter = /attributes[@nRTAC=310]; // String
         let offset = 56; // Integer
         let limit = 56; // Integer
     
    -    let mut context = CollectionsApi::Context::default();
    -    let result = client.getAllCollections(accept, offset, limit, &context).wait();
    +    let mut context = EntitiesAndRelationshipsApi::Context::default();
    +    let result = client.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -4219,6 +4271,76 @@ pub fn main() {
     
                               

    Parameters

    +
    Path parameters
    + + + + + + + + + + + + + + + + + +
    NameDescription
    domainName* + + +
    +
    +
    + + String + + +
    +domain name +
    +
    +
    + Required +
    +
    +
    +
    entityTypeName* + + +
    +
    +
    + + String + + +
    +
    + Required +
    +
    +
    +
    entityId* + + +
    +
    +
    + + String + + +
    +
    + Required +
    +
    +
    +
    Header parameters
    @@ -4230,7 +4352,7 @@ pub fn main() { + + + + + + + +
    -
    +
    @@ -4256,11 +4378,51 @@ pub fn main() {
    Name Description
    targetFilter + + +
    +
    +
    + + String + + +
    +Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. +
    +
    +
    +
    +
    scopeFilter + + +
    +
    +
    + + String + + +
    +Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. +
    +
    +
    +
    +
    offset -
    +
    @@ -4280,7 +4442,7 @@ Pagination offset.
    -
    +
    @@ -4299,23 +4461,23 @@ Result limiter.

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getCollection

    -

    Get a collection with specified id.

    +

    getEntitiesByDomain

    +

    Get entities by domain

    -

    Get a collection with specified id.

    +

    Get topology entities by domain, using specified targetFilter as mandatory query parameter.


    -
    /collections/{collectionId}
    +
    /domains/{domainName}/entities

    Usage and SDK Samples

    -
    +
    curl -X GET \
      -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/collections/{collectionId}"
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entities?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]&offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.CollectionsApi;
    +import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    -        String collectionId = collectionId_example; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +        String scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            CollectionResponse result = apiInstance.getCollection(accept, collectionId);
    +            EntitiesResponseMessage result = apiInstance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#getCollection");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getEntitiesByDomain");
                 e.printStackTrace();
             }
         }
    @@ -4840,59 +5022,75 @@ public class CollectionsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String collectionId = new String(); // String | 
    +final String domainName = new String(); // String | domain name
    +final String targetFilter = new String(); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +final String scopeFilter = new String(); // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    +final Integer offset = new Integer(); // Integer | Pagination offset.
    +final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getCollection(accept, collectionId);
    +    final result = await api_instance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getCollection: $e\n');
    +    print('Exception when calling DefaultApi->getEntitiesByDomain: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.CollectionsApi;
    +                          
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
    -        CollectionsApi apiInstance = new CollectionsApi();
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    -        String collectionId = collectionId_example; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +        String scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            CollectionResponse result = apiInstance.getCollection(accept, collectionId);
    +            EntitiesResponseMessage result = apiInstance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#getCollection");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getEntitiesByDomain");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
    +EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *collectionId = collectionId_example; //  (default to null)
    +String *domainName = domainName_example; // domain name (default to null)
    +String *targetFilter = /attributes(nCI,nRPCI); // Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    +String *scopeFilter = /attributes[@nRTAC=310]; // Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
    +Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    +Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get a collection with specified id.
    -[apiInstance getCollectionWith:accept
    -    collectionId:collectionId
    -              completionHandler: ^(CollectionResponse output, NSError* error) {
    +// Get entities by domain
    +[apiInstance getEntitiesByDomainWith:accept
    +    domainName:domainName
    +    targetFilter:targetFilter
    +    scopeFilter:scopeFilter
    +    offset:offset
    +    limit:limit
    +              completionHandler: ^(EntitiesResponseMessage output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -4903,13 +5101,19 @@ String *collectionId = collectionId_example; //  (default to null)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.CollectionsApi()
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
     var accept = application/json; // {String} 
    -var collectionId = collectionId_example; // {String} 
    +var domainName = domainName_example; // {String} domain name
    +var opts = {
    +  'targetFilter': /attributes(nCI,nRPCI), // {String} Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +  'scopeFilter': /attributes[@nRTAC=310], // {String} Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    +  'offset': 56, // {Integer} Pagination offset.
    +  'limit': 56 // {Integer} Result limiter.
    +};
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -4918,14 +5122,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getCollection(accept, collectionId, callback);
    +api.getEntitiesByDomain(accept, domainName, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -4934,22 +5138,26 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getCollectionExample
    +    public class getEntitiesByDomainExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new CollectionsApi();
    +            var apiInstance = new EntitiesAndRelationshipsApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var collectionId = collectionId_example;  // String |  (default to null)
    +            var domainName = domainName_example;  // String | domain name (default to null)
    +            var targetFilter = /attributes(nCI,nRPCI);  // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional)  (default to null)
    +            var scopeFilter = /attributes[@nRTAC=310];  // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional)  (default to null)
    +            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    +            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get a collection with specified id.
    -                CollectionResponse result = apiInstance.getCollection(accept, collectionId);
    +                // Get entities by domain
    +                EntitiesResponseMessage result = apiInstance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling CollectionsApi.getCollection: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getEntitiesByDomain: " + e.Message );
                 }
             }
         }
    @@ -4957,44 +5165,52 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\CollectionsApi();
    +$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
     $accept = application/json; // String | 
    -$collectionId = collectionId_example; // String | 
    +$domainName = domainName_example; // String | domain name
    +$targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +$scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    +$offset = 56; // Integer | Pagination offset.
    +$limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getCollection($accept, $collectionId);
    +    $result = $api_instance->getEntitiesByDomain($accept, $domainName, $targetFilter, $scopeFilter, $offset, $limit);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling CollectionsApi->getCollection: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getEntitiesByDomain: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::CollectionsApi;
    +use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
    +my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
     my $accept = application/json; # String | 
    -my $collectionId = collectionId_example; # String | 
    +my $domainName = domainName_example; # String | domain name
    +my $targetFilter = /attributes(nCI,nRPCI); # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +my $scopeFilter = /attributes[@nRTAC=310]; # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    +my $offset = 56; # Integer | Pagination offset.
    +my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getCollection(accept => $accept, collectionId => $collectionId);
    +    my $result = $api_instance->getEntitiesByDomain(accept => $accept, domainName => $domainName, targetFilter => $targetFilter, scopeFilter => $scopeFilter, offset => $offset, limit => $limit);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling CollectionsApi->getCollection: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getEntitiesByDomain: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -5002,27 +5218,35 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.CollectionsApi()
    +api_instance = openapi_client.EntitiesAndRelationshipsApi()
     accept = application/json # String |  (default to application/json)
    -collectionId = collectionId_example # String |  (default to null)
    +domainName = domainName_example # String | domain name (default to null)
    +targetFilter = /attributes(nCI,nRPCI) # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    +scopeFilter = /attributes[@nRTAC=310] # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
    +offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    +limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get a collection with specified id.
    -    api_response = api_instance.get_collection(accept, collectionId)
    +    # Get entities by domain
    +    api_response = api_instance.get_entities_by_domain(accept, domainName, targetFilter=targetFilter, scopeFilter=scopeFilter, offset=offset, limit=limit)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling CollectionsApi->getCollection: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getEntitiesByDomain: %s\n" % e)
    -
    -
    extern crate CollectionsApi;
    +                            
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let collectionId = collectionId_example; // String
    +    let domainName = domainName_example; // String
    +    let targetFilter = /attributes(nCI,nRPCI); // String
    +    let scopeFilter = /attributes[@nRTAC=310]; // String
    +    let offset = 56; // Integer
    +    let limit = 56; // Integer
     
    -    let mut context = CollectionsApi::Context::default();
    -    let result = client.getCollection(accept, collectionId, &context).wait();
    +    let mut context = EntitiesAndRelationshipsApi::Context::default();
    +    let result = client.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -5043,17 +5267,20 @@ pub fn main() {
                                       Name
                                       Description
                                     
    -                                  collectionId*
    +                                  domainName*
     
     
     
    -    
    +
    String +
    +domain name +
    Required @@ -5075,7 +5302,7 @@ pub fn main() { -
    +
    @@ -5095,25 +5322,112 @@ pub fn main() { +
    Query parameters
    + + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    targetFilter + + +
    +
    +
    + + String + + +
    +Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. +
    +
    +
    +
    +
    scopeFilter + + +
    +
    +
    + + String + + +
    +Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. +
    +
    +
    +
    +
    offset + + +
    +
    +
    + + Integer + + +
    +Pagination offset. +
    +
    +
    +
    +
    limit + + +
    +
    +
    + + Integer + + +
    +Result limiter. +
    +
    +
    +
    +

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    updateCollection

    -

    Update a collection.

    +

    getRelationshipById

    +

    Get relationship with specified id. Specified id represents the relationship instance.

    -

    Update a collection.

    +

    Get relationship with specified id. Specified id represents the relationship instance.


    -
    /collections/{collectionId}
    +
    /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}

    Usage and SDK Samples

    -
    -
    curl -X PUT \
    - -H "Accept: application/problem+json" \
    - -H "Content-Type: application/json" \
    - "https://localhost/topology-inventory/v1alpha11/collections/{collectionId}" \
    - -d '{
    -  "criteria" : {
    -    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    -  },
    -  "collectionName" : "collectionName"
    -}'
    +                          
    +
    curl -X GET \
    + -H "Accept: application/yang.data+json,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.CollectionsApi;
    +import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        CollectionsApi apiInstance = new CollectionsApi();
    -        String accept = application/json; // String | 
    -        String contentType = application/json; // String | 
    -        String collectionId = collectionId_example; // String | 
    -        Collection collection = ; // Collection | 
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        String accept = application/yang.data+json; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    +        String relationshipId = relationshipId_example; // String | 
     
             try {
    -            apiInstance.updateCollection(accept, contentType, collectionId, collection);
    +            Object result = apiInstance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#updateCollection");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getRelationshipById");
                 e.printStackTrace();
             }
         }
    @@ -5662,66 +5889,70 @@ public class CollectionsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String contentType = new String(); // String | 
    -final String collectionId = new String(); // String | 
    -final Collection collection = new Collection(); // Collection | 
    +final String domainName = new String(); // String | domain name
    +final String relationshipTypeName = new String(); // String | 
    +final String relationshipId = new String(); // String | 
     
     try {
    -    final result = await api_instance.updateCollection(accept, contentType, collectionId, collection);
    +    final result = await api_instance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->updateCollection: $e\n');
    +    print('Exception when calling DefaultApi->getRelationshipById: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.CollectionsApi;
    +                          
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
    -public class CollectionsApiExample {
    +public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
    -        CollectionsApi apiInstance = new CollectionsApi();
    -        String accept = application/json; // String | 
    -        String contentType = application/json; // String | 
    -        String collectionId = collectionId_example; // String | 
    -        Collection collection = ; // Collection | 
    +        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        String accept = application/yang.data+json; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    +        String relationshipId = relationshipId_example; // String | 
     
             try {
    -            apiInstance.updateCollection(accept, contentType, collectionId, collection);
    +            Object result = apiInstance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling CollectionsApi#updateCollection");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getRelationshipById");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
    -String *accept = application/json; //  (default to application/json)
    -String *contentType = application/json; //  (default to application/json)
    -String *collectionId = collectionId_example; //  (default to null)
    -Collection *collection = ; // 
    +EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    +String *accept = application/yang.data+json; //  (default to application/yang.data+json)
    +String *domainName = domainName_example; // domain name (default to null)
    +String *relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; //  (default to null)
    +String *relationshipId = relationshipId_example; //  (default to null)
     
    -// Update a collection.
    -[apiInstance updateCollectionWith:accept
    -    contentType:contentType
    -    collectionId:collectionId
    -    collection:collection
    -              completionHandler: ^(NSError* error) {
    +// Get relationship with specified id. Specified id represents the relationship instance.
    +[apiInstance getRelationshipByIdWith:accept
    +    domainName:domainName
    +    relationshipTypeName:relationshipTypeName
    +    relationshipId:relationshipId
    +              completionHandler: ^(Object output, NSError* error) {
    +    if (output) {
    +        NSLog(@"%@", output);
    +    }
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -5729,31 +5960,31 @@ Collection *collection = ; //
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.CollectionsApi()
    -var accept = application/json; // {String} 
    -var contentType = application/json; // {String} 
    -var collectionId = collectionId_example; // {String} 
    -var collection = ; // {Collection} 
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
    +var accept = application/yang.data+json; // {String} 
    +var domainName = domainName_example; // {String} domain name
    +var relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // {String} 
    +var relationshipId = relationshipId_example; // {String} 
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully.');
    +    console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.updateCollection(accept, contentType, collectionId, collection, callback);
    +api.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -5762,23 +5993,24 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class updateCollectionExample
    +    public class getRelationshipByIdExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new CollectionsApi();
    -            var accept = application/json;  // String |  (default to application/json)
    -            var contentType = application/json;  // String |  (default to application/json)
    -            var collectionId = collectionId_example;  // String |  (default to null)
    -            var collection = new Collection(); // Collection | 
    +            var apiInstance = new EntitiesAndRelationshipsApi();
    +            var accept = application/yang.data+json;  // String |  (default to application/yang.data+json)
    +            var domainName = domainName_example;  // String | domain name (default to null)
    +            var relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER;  // String |  (default to null)
    +            var relationshipId = relationshipId_example;  // String |  (default to null)
     
                 try {
    -                // Update a collection.
    -                apiInstance.updateCollection(accept, contentType, collectionId, collection);
    +                // Get relationship with specified id. Specified id represents the relationship instance.
    +                Object result = apiInstance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +                Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling CollectionsApi.updateCollection: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getRelationshipById: " + e.Message );
                 }
             }
         }
    @@ -5786,46 +6018,48 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\CollectionsApi();
    -$accept = application/json; // String | 
    -$contentType = application/json; // String | 
    -$collectionId = collectionId_example; // String | 
    -$collection = ; // Collection | 
    +$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    +$accept = application/yang.data+json; // String | 
    +$domainName = domainName_example; // String | domain name
    +$relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    +$relationshipId = relationshipId_example; // String | 
     
     try {
    -    $api_instance->updateCollection($accept, $contentType, $collectionId, $collection);
    +    $result = $api_instance->getRelationshipById($accept, $domainName, $relationshipTypeName, $relationshipId);
    +    print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling CollectionsApi->updateCollection: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getRelationshipById: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::CollectionsApi;
    +use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
    -my $accept = application/json; # String | 
    -my $contentType = application/json; # String | 
    -my $collectionId = collectionId_example; # String | 
    -my $collection = WWW::OPenAPIClient::Object::Collection->new(); # Collection | 
    +my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    +my $accept = application/yang.data+json; # String | 
    +my $domainName = domainName_example; # String | domain name
    +my $relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; # String | 
    +my $relationshipId = relationshipId_example; # String | 
     
     eval {
    -    $api_instance->updateCollection(accept => $accept, contentType => $contentType, collectionId => $collectionId, collection => $collection);
    +    my $result = $api_instance->getRelationshipById(accept => $accept, domainName => $domainName, relationshipTypeName => $relationshipTypeName, relationshipId => $relationshipId);
    +    print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling CollectionsApi->updateCollection: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getRelationshipById: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -5833,30 +6067,31 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.CollectionsApi()
    -accept = application/json # String |  (default to application/json)
    -contentType = application/json # String |  (default to application/json)
    -collectionId = collectionId_example # String |  (default to null)
    -collection =  # Collection | 
    +api_instance = openapi_client.EntitiesAndRelationshipsApi()
    +accept = application/yang.data+json # String |  (default to application/yang.data+json)
    +domainName = domainName_example # String | domain name (default to null)
    +relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER # String |  (default to null)
    +relationshipId = relationshipId_example # String |  (default to null)
     
     try:
    -    # Update a collection.
    -    api_instance.update_collection(accept, contentType, collectionId, collection)
    +    # Get relationship with specified id. Specified id represents the relationship instance.
    +    api_response = api_instance.get_relationship_by_id(accept, domainName, relationshipTypeName, relationshipId)
    +    pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling CollectionsApi->updateCollection: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getRelationshipById: %s\n" % e)
    -
    -
    extern crate CollectionsApi;
    -
    +                            
    +
    extern crate EntitiesAndRelationshipsApi;
    +
     pub fn main() {
    -    let accept = application/json; // String
    -    let contentType = application/json; // String
    -    let collectionId = collectionId_example; // String
    -    let collection = ; // Collection
    +    let accept = application/yang.data+json; // String
    +    let domainName = domainName_example; // String
    +    let relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String
    +    let relationshipId = relationshipId_example; // String
     
    -    let mut context = CollectionsApi::Context::default();
    -    let result = client.updateCollection(accept, contentType, collectionId, collection, &context).wait();
    +    let mut context = EntitiesAndRelationshipsApi::Context::default();
    +    let result = client.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -5877,17 +6112,20 @@ pub fn main() {
                                       Name
                                       Description
                                     
    -                                  collectionId*
    +                                  domainName*
     
     
     
    -    
    +
    String +
    +domain name +
    Required @@ -5897,19 +6135,11 @@ pub fn main() { - - -
    Header parameters
    - - - - - - + - +
    NameDescription
    Accept*
    relationshipTypeName* -
    +
    @@ -5925,11 +6155,11 @@ pub fn main() {
    Content-Type*
    relationshipId* -
    +
    @@ -5947,58 +6177,29 @@ pub fn main() {
    -
    Body parameters
    +
    Header parameters
    - + @@ -6006,35 +6207,53 @@ $(document).ready(function() { +

    Responses

    -

    -

    +

    +

    -
    Name Description
    collection *
    Accept* -

    - -
    +
    +
    +
    + + String + + +
    +
    + Required +
    +
    +
    - - - - - + + + + + - +
    NameDescription
    Accept*
    NameDescription
    domainName* -
    +
    String +
    +domain name +
    Required @@ -6786,11 +7050,11 @@ pub fn main() {
    Content-Type*
    relationshipTypeName* -
    +
    @@ -6808,55 +7072,29 @@ pub fn main() {
    -
    Body parameters
    +
    Header parameters
    - + @@ -6864,35 +7102,139 @@ $(document).ready(function() { +
    Query parameters
    +
    Name Description
    decorator *
    Accept* -

    - -
    +
    +
    +
    + + String + + +
    +
    + Required +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    NameDescription
    targetFilter + + +
    +
    +
    + + String + + +
    +Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. +
    +
    +
    +
    +
    scopeFilter + + +
    +
    +
    + + String + + +
    +Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. +
    +
    +
    +
    +
    offset + + +
    +
    +
    + + Integer + + +
    +Pagination offset. +
    +
    +
    +
    +
    limit + + +
    +
    +
    + + Integer + + +
    +Result limiter. +
    +
    +
    +
    +
    +

    Responses

    -

    -

    +

    +

    -

    -
    -
    -

    EntitiesAndRelationships

    -
    -
    +
    +
    -

    getAllDomains

    -

    Get all the available topology domains.

    +

    getTopologyByEntityTypeName

    +

    Get all topology entities of a specific entity type.

    -

    Get all the available topology domains.

    +

    Get all topology entities of a specific entity type.


    -
    /domains
    +
    /domains/{domainName}/entity-types/{entityTypeName}/entities

    Usage and SDK Samples

    -
    +
    curl -X GET \
      -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains?offset=56&limit=56"
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]&offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    @@ -7395,14 +7653,18 @@ public class EntitiesAndRelationshipsApiExample {
             // Create an instance of the API class
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String entityTypeName = entityTypeName_example; // String | 
    +        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +        String scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            Domains result = apiInstance.getAllDomains(accept, offset, limit);
    +            EntitiesResponseMessage result = apiInstance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllDomains");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyByEntityTypeName");
                 e.printStackTrace();
             }
         }
    @@ -7410,63 +7672,79 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    +final String domainName = new String(); // String | domain name
    +final String entityTypeName = new String(); // String | 
    +final String targetFilter = new String(); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +final String scopeFilter = new String(); // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     final Integer offset = new Integer(); // Integer | Pagination offset.
     final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getAllDomains(accept, offset, limit);
    +    final result = await api_instance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getAllDomains: $e\n');
    +    print('Exception when calling DefaultApi->getTopologyByEntityTypeName: $e\n');
     }
     
     
    -
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
    +        String domainName = domainName_example; // String | domain name
    +        String entityTypeName = entityTypeName_example; // String | 
    +        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +        String scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            Domains result = apiInstance.getAllDomains(accept, offset, limit);
    +            EntitiesResponseMessage result = apiInstance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllDomains");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyByEntityTypeName");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
     EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    +String *domainName = domainName_example; // domain name (default to null)
    +String *entityTypeName = entityTypeName_example; //  (default to null)
    +String *targetFilter = /attributes(nCI,nRPCI); // Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    +String *scopeFilter = /attributes[@nRTAC=310]; // Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
     Integer *offset = 56; // Pagination offset. (optional) (default to 0)
     Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get all the available topology domains.
    -[apiInstance getAllDomainsWith:accept
    +// Get all topology entities of a specific entity type.
    +[apiInstance getTopologyByEntityTypeNameWith:accept
    +    domainName:domainName
    +    entityTypeName:entityTypeName
    +    targetFilter:targetFilter
    +    scopeFilter:scopeFilter
         offset:offset
         limit:limit
    -              completionHandler: ^(Domains output, NSError* error) {
    +              completionHandler: ^(EntitiesResponseMessage output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -7477,13 +7755,17 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
     var accept = application/json; // {String} 
    +var domainName = domainName_example; // {String} domain name
    +var entityTypeName = entityTypeName_example; // {String} 
     var opts = {
    +  'targetFilter': /attributes(nCI,nRPCI), // {String} Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +  'scopeFilter': /attributes[@nRTAC=310], // {String} Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
       'offset': 56, // {Integer} Pagination offset.
       'limit': 56 // {Integer} Result limiter.
     };
    @@ -7495,14 +7777,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getAllDomains(accept, opts, callback);
    +api.getTopologyByEntityTypeName(accept, domainName, entityTypeName, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -7511,7 +7793,7 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getAllDomainsExample
    +    public class getTopologyByEntityTypeNameExample
         {
             public void main()
             {
    @@ -7519,15 +7801,19 @@ namespace Example
                 // Create an instance of the API class
                 var apiInstance = new EntitiesAndRelationshipsApi();
                 var accept = application/json;  // String |  (default to application/json)
    +            var domainName = domainName_example;  // String | domain name (default to null)
    +            var entityTypeName = entityTypeName_example;  // String |  (default to null)
    +            var targetFilter = /attributes(nCI,nRPCI);  // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional)  (default to null)
    +            var scopeFilter = /attributes[@nRTAC=310];  // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional)  (default to null)
                 var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
                 var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get all the available topology domains.
    -                Domains result = apiInstance.getAllDomains(accept, offset, limit);
    +                // Get all topology entities of a specific entity type.
    +                EntitiesResponseMessage result = apiInstance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getAllDomains: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyByEntityTypeName: " + e.Message );
                 }
             }
         }
    @@ -7535,26 +7821,30 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
     $api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
     $accept = application/json; // String | 
    +$domainName = domainName_example; // String | domain name
    +$entityTypeName = entityTypeName_example; // String | 
    +$targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +$scopeFilter = /attributes[@nRTAC=310]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     $offset = 56; // Integer | Pagination offset.
     $limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getAllDomains($accept, $offset, $limit);
    +    $result = $api_instance->getTopologyByEntityTypeName($accept, $domainName, $entityTypeName, $targetFilter, $scopeFilter, $offset, $limit);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getAllDomains: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyByEntityTypeName: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
     use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    @@ -7562,19 +7852,23 @@ use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     # Create an instance of the API class
     my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
     my $accept = application/json; # String | 
    +my $domainName = domainName_example; # String | domain name
    +my $entityTypeName = entityTypeName_example; # String | 
    +my $targetFilter = /attributes(nCI,nRPCI); # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    +my $scopeFilter = /attributes[@nRTAC=310]; # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     my $offset = 56; # Integer | Pagination offset.
     my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getAllDomains(accept => $accept, offset => $offset, limit => $limit);
    +    my $result = $api_instance->getTopologyByEntityTypeName(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, targetFilter => $targetFilter, scopeFilter => $scopeFilter, offset => $offset, limit => $limit);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getAllDomains: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyByEntityTypeName: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -7584,27 +7878,35 @@ from pprint import pprint
     # Create an instance of the API class
     api_instance = openapi_client.EntitiesAndRelationshipsApi()
     accept = application/json # String |  (default to application/json)
    +domainName = domainName_example # String | domain name (default to null)
    +entityTypeName = entityTypeName_example # String |  (default to null)
    +targetFilter = /attributes(nCI,nRPCI) # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    +scopeFilter = /attributes[@nRTAC=310] # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
     offset = 56 # Integer | Pagination offset. (optional) (default to 0)
     limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get all the available topology domains.
    -    api_response = api_instance.get_all_domains(accept, offset=offset, limit=limit)
    +    # Get all topology entities of a specific entity type.
    +    api_response = api_instance.get_topology_by_entity_type_name(accept, domainName, entityTypeName, targetFilter=targetFilter, scopeFilter=scopeFilter, offset=offset, limit=limit)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getAllDomains: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getTopologyByEntityTypeName: %s\n" % e)
    -
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
         let accept = application/json; // String
    +    let domainName = domainName_example; // String
    +    let entityTypeName = entityTypeName_example; // String
    +    let targetFilter = /attributes(nCI,nRPCI); // String
    +    let scopeFilter = /attributes[@nRTAC=310]; // String
         let offset = 56; // Integer
         let limit = 56; // Integer
     
         let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getAllDomains(accept, offset, limit, &context).wait();
    +    let result = client.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -7619,18 +7921,68 @@ pub fn main() {
     
                               

    Parameters

    - -
    Header parameters
    +
    Path parameters
    - - + + + + + + + + + + + + +
    Name
    NameDescription
    domainName* + + +
    +
    +
    + + String + + +
    +domain name +
    +
    +
    + Required +
    +
    +
    +
    entityTypeName* + + +
    +
    +
    + + String + + +
    +
    + Required +
    +
    +
    +
    + +
    Header parameters
    + + + + + + + + + + +
    Name Description
    Accept* -
    +
    @@ -7656,11 +8008,51 @@ pub fn main() {
    Name Description
    targetFilter + + +
    +
    +
    + + String + + +
    +Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. +
    +
    +
    +
    +
    scopeFilter + + +
    +
    +
    + + String + + +
    +Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. +
    +
    +
    +
    +
    offset -
    +
    @@ -7680,7 +8072,7 @@ Pagination offset.
    -
    +
    @@ -7699,23 +8091,23 @@ Result limiter.

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getAllRelationshipsForEntityId

    -

    Get all relationships for entity type name with specified id. Specified id represents the entity instance.

    +

    getTopologyById

    +

    Get topology for entity type name with specified id. Specified id represents the entity instance.

    -

    Get all relationships for entity type name with specified id. Specified id represents the entity instance.

    +

    Get topology for entity type name with specified id. Specified id represents the entity instance.


    -
    /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships
    +
    /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}

    Usage and SDK Samples

    -
    +
    curl -X GET \
    - -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships?offset=56&limit=56"
    + -H "Accept: application/yang.data+json,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    @@ -8160,18 +8552,16 @@ public class EntitiesAndRelationshipsApiExample {
     
             // Create an instance of the API class
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    -        String accept = application/json; // String | 
    +        String accept = application/yang.data+json; // String | 
             String domainName = domainName_example; // String | domain name
             String entityTypeName = entityTypeName_example; // String | 
             String entityId = entityId_example; // String | 
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit);
    +            Object result = apiInstance.getTopologyById(accept, domainName, entityTypeName, entityId);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllRelationshipsForEntityId");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyById");
                 e.printStackTrace();
             }
         }
    @@ -8179,7 +8569,7 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
    @@ -8188,66 +8578,58 @@ final String accept = new String(); // String |
     final String domainName = new String(); // String | domain name
     final String entityTypeName = new String(); // String | 
     final String entityId = new String(); // String | 
    -final Integer offset = new Integer(); // Integer | Pagination offset.
    -final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit);
    +    final result = await api_instance.getTopologyById(accept, domainName, entityTypeName, entityId);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getAllRelationshipsForEntityId: $e\n');
    +    print('Exception when calling DefaultApi->getTopologyById: $e\n');
     }
     
     
    -
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     public class EntitiesAndRelationshipsApiExample {
         public static void main(String[] args) {
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    -        String accept = application/json; // String | 
    +        String accept = application/yang.data+json; // String | 
             String domainName = domainName_example; // String | domain name
             String entityTypeName = entityTypeName_example; // String | 
             String entityId = entityId_example; // String | 
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit);
    +            Object result = apiInstance.getTopologyById(accept, domainName, entityTypeName, entityId);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getAllRelationshipsForEntityId");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyById");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
     EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    -String *accept = application/json; //  (default to application/json)
    +String *accept = application/yang.data+json; //  (default to application/yang.data+json)
     String *domainName = domainName_example; // domain name (default to null)
     String *entityTypeName = entityTypeName_example; //  (default to null)
     String *entityId = entityId_example; //  (default to null)
    -Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    -Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    -[apiInstance getAllRelationshipsForEntityIdWith:accept
    +// Get topology for entity type name with specified id. Specified id represents the entity instance.
    +[apiInstance getTopologyByIdWith:accept
         domainName:domainName
         entityTypeName:entityTypeName
         entityId:entityId
    -    offset:offset
    -    limit:limit
    -              completionHandler: ^(RelationshipsResponseMessage output, NSError* error) {
    +              completionHandler: ^(Object output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -8258,19 +8640,15 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    -var accept = application/json; // {String} 
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
    +var accept = application/yang.data+json; // {String} 
     var domainName = domainName_example; // {String} domain name
     var entityTypeName = entityTypeName_example; // {String} 
     var entityId = entityId_example; // {String} 
    -var opts = {
    -  'offset': 56, // {Integer} Pagination offset.
    -  'limit': 56 // {Integer} Result limiter.
    -};
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -8279,14 +8657,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, opts, callback);
    +api.getTopologyById(accept, domainName, entityTypeName, entityId, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -8295,26 +8673,24 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getAllRelationshipsForEntityIdExample
    +    public class getTopologyByIdExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
                 var apiInstance = new EntitiesAndRelationshipsApi();
    -            var accept = application/json;  // String |  (default to application/json)
    +            var accept = application/yang.data+json;  // String |  (default to application/yang.data+json)
                 var domainName = domainName_example;  // String | domain name (default to null)
                 var entityTypeName = entityTypeName_example;  // String |  (default to null)
                 var entityId = entityId_example;  // String |  (default to null)
    -            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    -            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    -                RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit);
    +                // Get topology for entity type name with specified id. Specified id represents the entity instance.
    +                Object result = apiInstance.getTopologyById(accept, domainName, entityTypeName, entityId);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getAllRelationshipsForEntityId: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyById: " + e.Message );
                 }
             }
         }
    @@ -8322,52 +8698,48 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
     $api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    -$accept = application/json; // String | 
    +$accept = application/yang.data+json; // String | 
     $domainName = domainName_example; // String | domain name
     $entityTypeName = entityTypeName_example; // String | 
     $entityId = entityId_example; // String | 
    -$offset = 56; // Integer | Pagination offset.
    -$limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getAllRelationshipsForEntityId($accept, $domainName, $entityTypeName, $entityId, $offset, $limit);
    +    $result = $api_instance->getTopologyById($accept, $domainName, $entityTypeName, $entityId);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyById: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
     use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     
     # Create an instance of the API class
     my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    -my $accept = application/json; # String | 
    +my $accept = application/yang.data+json; # String | 
     my $domainName = domainName_example; # String | domain name
     my $entityTypeName = entityTypeName_example; # String | 
     my $entityId = entityId_example; # String | 
    -my $offset = 56; # Integer | Pagination offset.
    -my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getAllRelationshipsForEntityId(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, entityId => $entityId, offset => $offset, limit => $limit);
    +    my $result = $api_instance->getTopologyById(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, entityId => $entityId);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyById: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -8376,34 +8748,30 @@ from pprint import pprint
     
     # Create an instance of the API class
     api_instance = openapi_client.EntitiesAndRelationshipsApi()
    -accept = application/json # String |  (default to application/json)
    +accept = application/yang.data+json # String |  (default to application/yang.data+json)
     domainName = domainName_example # String | domain name (default to null)
     entityTypeName = entityTypeName_example # String |  (default to null)
     entityId = entityId_example # String |  (default to null)
    -offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    -limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    -    api_response = api_instance.get_all_relationships_for_entity_id(accept, domainName, entityTypeName, entityId, offset=offset, limit=limit)
    +    # Get topology for entity type name with specified id. Specified id represents the entity instance.
    +    api_response = api_instance.get_topology_by_id(accept, domainName, entityTypeName, entityId)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getTopologyById: %s\n" % e)
    -
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
    -    let accept = application/json; // String
    +    let accept = application/yang.data+json; // String
         let domainName = domainName_example; // String
         let entityTypeName = entityTypeName_example; // String
         let entityId = entityId_example; // String
    -    let offset = 56; // Integer
    -    let limit = 56; // Integer
     
         let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit, &context).wait();
    +    let result = client.getTopologyById(accept, domainName, entityTypeName, entityId, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -8428,7 +8796,7 @@ pub fn main() {
     
     
     
    -    
    +
    @@ -8451,7 +8819,7 @@ domain name -
    +
    @@ -8471,7 +8839,7 @@ domain name -
    +
    @@ -8499,7 +8867,7 @@ domain name -
    +
    @@ -8519,72 +8887,25 @@ domain name -
    Query parameters
    - - - - - - - - - - - - - -
    NameDescription
    offset - - -
    -
    -
    - - Integer - - -
    -Pagination offset. -
    -
    -
    -
    -
    limit - - -
    -
    -
    - - Integer - - -
    -Result limiter. -
    -
    -
    -
    -

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getEntitiesByDomain

    -

    Get entities by domain

    +

    getTopologyEntityTypes

    +

    Get all the available topology entity types in domain name.

    -

    Get topology entities by domain, using specified targetFilter as mandatory query parameter.

    +

    Get all the available topology entity types in domain name.


    -
    /domains/{domainName}/entities
    +
    /domains/{domainName}/entity-types

    Usage and SDK Samples

    -
    +
    curl -X GET \
      -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entities?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310"]&offset=56&limit=56"
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types?offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    @@ -9112,16 +9434,14 @@ public class EntitiesAndRelationshipsApiExample {
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
             String domainName = domainName_example; // String | domain name
    -        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -        String scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            EntitiesResponseMessage result = apiInstance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
    +            EntityTypes result = apiInstance.getTopologyEntityTypes(accept, domainName, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getEntitiesByDomain");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyEntityTypes");
                 e.printStackTrace();
             }
         }
    @@ -9129,29 +9449,27 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
     final String domainName = new String(); // String | domain name
    -final String targetFilter = new String(); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -final String scopeFilter = new String(); // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     final Integer offset = new Integer(); // Integer | Pagination offset.
     final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
    +    final result = await api_instance.getTopologyEntityTypes(accept, domainName, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getEntitiesByDomain: $e\n');
    +    print('Exception when calling DefaultApi->getTopologyEntityTypes: $e\n');
     }
     
     
    -
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     public class EntitiesAndRelationshipsApiExample {
    @@ -9159,45 +9477,39 @@ public class EntitiesAndRelationshipsApiExample {
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
             String domainName = domainName_example; // String | domain name
    -        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -        String scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            EntitiesResponseMessage result = apiInstance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
    +            EntityTypes result = apiInstance.getTopologyEntityTypes(accept, domainName, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getEntitiesByDomain");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyEntityTypes");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
     EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
     String *domainName = domainName_example; // domain name (default to null)
    -String *targetFilter = /attributes(nCI,nRPCI); // Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    -String *scopeFilter = /attributes[@nRTAC=310"]; // Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
     Integer *offset = 56; // Pagination offset. (optional) (default to 0)
     Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get entities by domain
    -[apiInstance getEntitiesByDomainWith:accept
    +// Get all the available topology entity types in domain name.
    +[apiInstance getTopologyEntityTypesWith:accept
         domainName:domainName
    -    targetFilter:targetFilter
    -    scopeFilter:scopeFilter
         offset:offset
         limit:limit
    -              completionHandler: ^(EntitiesResponseMessage output, NSError* error) {
    +              completionHandler: ^(EntityTypes output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -9208,16 +9520,14 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
     var accept = application/json; // {String} 
     var domainName = domainName_example; // {String} domain name
     var opts = {
    -  'targetFilter': /attributes(nCI,nRPCI), // {String} Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -  'scopeFilter': /attributes[@nRTAC=310"], // {String} Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
       'offset': 56, // {Integer} Pagination offset.
       'limit': 56 // {Integer} Result limiter.
     };
    @@ -9229,14 +9539,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getEntitiesByDomain(accept, domainName, opts, callback);
    +api.getTopologyEntityTypes(accept, domainName, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -9245,7 +9555,7 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getEntitiesByDomainExample
    +    public class getTopologyEntityTypesExample
         {
             public void main()
             {
    @@ -9254,17 +9564,15 @@ namespace Example
                 var apiInstance = new EntitiesAndRelationshipsApi();
                 var accept = application/json;  // String |  (default to application/json)
                 var domainName = domainName_example;  // String | domain name (default to null)
    -            var targetFilter = /attributes(nCI,nRPCI);  // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional)  (default to null)
    -            var scopeFilter = /attributes[@nRTAC=310"];  // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional)  (default to null)
                 var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
                 var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get entities by domain
    -                EntitiesResponseMessage result = apiInstance.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit);
    +                // Get all the available topology entity types in domain name.
    +                EntityTypes result = apiInstance.getTopologyEntityTypes(accept, domainName, offset, limit);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getEntitiesByDomain: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyEntityTypes: " + e.Message );
                 }
             }
         }
    @@ -9272,7 +9580,7 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    @@ -9280,21 +9588,19 @@ require_once(__DIR__ . '/vendor/autoload.php');
     $api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
     $accept = application/json; // String | 
     $domainName = domainName_example; // String | domain name
    -$targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -$scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     $offset = 56; // Integer | Pagination offset.
     $limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getEntitiesByDomain($accept, $domainName, $targetFilter, $scopeFilter, $offset, $limit);
    +    $result = $api_instance->getTopologyEntityTypes($accept, $domainName, $offset, $limit);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getEntitiesByDomain: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyEntityTypes: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
     use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    @@ -9303,21 +9609,19 @@ use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
     my $accept = application/json; # String | 
     my $domainName = domainName_example; # String | domain name
    -my $targetFilter = /attributes(nCI,nRPCI); # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -my $scopeFilter = /attributes[@nRTAC=310"]; # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
     my $offset = 56; # Integer | Pagination offset.
     my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getEntitiesByDomain(accept => $accept, domainName => $domainName, targetFilter => $targetFilter, scopeFilter => $scopeFilter, offset => $offset, limit => $limit);
    +    my $result = $api_instance->getTopologyEntityTypes(accept => $accept, domainName => $domainName, offset => $offset, limit => $limit);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getEntitiesByDomain: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyEntityTypes: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -9328,32 +9632,28 @@ from pprint import pprint
     api_instance = openapi_client.EntitiesAndRelationshipsApi()
     accept = application/json # String |  (default to application/json)
     domainName = domainName_example # String | domain name (default to null)
    -targetFilter = /attributes(nCI,nRPCI) # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    -scopeFilter = /attributes[@nRTAC=310"] # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
     offset = 56 # Integer | Pagination offset. (optional) (default to 0)
     limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get entities by domain
    -    api_response = api_instance.get_entities_by_domain(accept, domainName, targetFilter=targetFilter, scopeFilter=scopeFilter, offset=offset, limit=limit)
    +    # Get all the available topology entity types in domain name.
    +    api_response = api_instance.get_topology_entity_types(accept, domainName, offset=offset, limit=limit)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getEntitiesByDomain: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getTopologyEntityTypes: %s\n" % e)
    -
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
         let accept = application/json; // String
         let domainName = domainName_example; // String
    -    let targetFilter = /attributes(nCI,nRPCI); // String
    -    let scopeFilter = /attributes[@nRTAC=310"]; // String
         let offset = 56; // Integer
         let limit = 56; // Integer
     
         let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getEntitiesByDomain(accept, domainName, targetFilter, scopeFilter, offset, limit, &context).wait();
    +    let result = client.getTopologyEntityTypes(accept, domainName, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -9378,7 +9678,7 @@ pub fn main() {
     
     
     
    -    
    +
    @@ -9409,7 +9709,7 @@ domain name -
    +
    @@ -9435,51 +9735,11 @@ domain name Name Description - targetFilter - - - -
    -
    -
    - - String - - -
    -Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. -
    -
    -
    -
    - - - - scopeFilter - - - -
    -
    -
    - - String - - -
    -Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. -
    -
    -
    -
    - - - offset -
    +
    @@ -9499,7 +9759,7 @@ Pagination offset. -
    +
    @@ -9518,23 +9778,23 @@ Result limiter.

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getRelationshipById

    -

    Get relationship with specified id. Specified id represents the relationship instance.

    +

    getTopologyRelationshipTypes

    +

    Get all the available topology relationship types.

    -

    Get relationship with specified id. Specified id represents the relationship instance.

    +

    Get all the available topology relationship types.


    -
    /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}
    +
    /domains/{domainName}/relationship-types

    Usage and SDK Samples

    -
    +
    curl -X GET \
    - -H "Accept: application/yang.data+json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}"
    + -H "Accept: application/json,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/relationship-types?offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    @@ -9981,14 +10241,14 @@ public class EntitiesAndRelationshipsApiExample {
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
             String domainName = domainName_example; // String | domain name
    -        String relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    -        String relationshipId = relationshipId_example; // String | 
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            Object result = apiInstance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +            RelationshipTypes result = apiInstance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getRelationshipById");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyRelationshipTypes");
                 e.printStackTrace();
             }
         }
    @@ -9996,27 +10256,27 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
     final String domainName = new String(); // String | domain name
    -final String relationshipTypeName = new String(); // String | 
    -final String relationshipId = new String(); // String | 
    +final Integer offset = new Integer(); // Integer | Pagination offset.
    +final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +    final result = await api_instance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getRelationshipById: $e\n');
    +    print('Exception when calling DefaultApi->getTopologyRelationshipTypes: $e\n');
     }
     
     
    -
    +
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
     
     public class EntitiesAndRelationshipsApiExample {
    @@ -10024,39 +10284,39 @@ public class EntitiesAndRelationshipsApiExample {
             EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
             String accept = application/json; // String | 
             String domainName = domainName_example; // String | domain name
    -        String relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    -        String relationshipId = relationshipId_example; // String | 
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            Object result = apiInstance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +            RelationshipTypes result = apiInstance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getRelationshipById");
    +            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyRelationshipTypes");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
     EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
     String *domainName = domainName_example; // domain name (default to null)
    -String *relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; //  (default to null)
    -String *relationshipId = relationshipId_example; //  (default to null)
    +Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    +Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get relationship with specified id. Specified id represents the relationship instance.
    -[apiInstance getRelationshipByIdWith:accept
    +// Get all the available topology relationship types.
    +[apiInstance getTopologyRelationshipTypesWith:accept
         domainName:domainName
    -    relationshipTypeName:relationshipTypeName
    -    relationshipId:relationshipId
    -              completionHandler: ^(Object output, NSError* error) {
    +    offset:offset
    +    limit:limit
    +              completionHandler: ^(RelationshipTypes output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -10067,15 +10327,17 @@ String *relationshipId = relationshipId_example; //  (default to null)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.EntitiesAndRelationshipsApi()
     var accept = application/json; // {String} 
     var domainName = domainName_example; // {String} domain name
    -var relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // {String} 
    -var relationshipId = relationshipId_example; // {String} 
    +var opts = {
    +  'offset': 56, // {Integer} Pagination offset.
    +  'limit': 56 // {Integer} Result limiter.
    +};
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -10084,14 +10346,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId, callback);
    +api.getTopologyRelationshipTypes(accept, domainName, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -10100,7 +10362,7 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getRelationshipByIdExample
    +    public class getTopologyRelationshipTypesExample
         {
             public void main()
             {
    @@ -10109,15 +10371,15 @@ namespace Example
                 var apiInstance = new EntitiesAndRelationshipsApi();
                 var accept = application/json;  // String |  (default to application/json)
                 var domainName = domainName_example;  // String | domain name (default to null)
    -            var relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER;  // String |  (default to null)
    -            var relationshipId = relationshipId_example;  // String |  (default to null)
    +            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    +            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get relationship with specified id. Specified id represents the relationship instance.
    -                Object result = apiInstance.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId);
    +                // Get all the available topology relationship types.
    +                RelationshipTypes result = apiInstance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getRelationshipById: " + e.Message );
    +                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyRelationshipTypes: " + e.Message );
                 }
             }
         }
    @@ -10125,7 +10387,7 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
    @@ -10133,19 +10395,19 @@ require_once(__DIR__ . '/vendor/autoload.php');
     $api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
     $accept = application/json; // String | 
     $domainName = domainName_example; // String | domain name
    -$relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    -$relationshipId = relationshipId_example; // String | 
    +$offset = 56; // Integer | Pagination offset.
    +$limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getRelationshipById($accept, $domainName, $relationshipTypeName, $relationshipId);
    +    $result = $api_instance->getTopologyRelationshipTypes($accept, $domainName, $offset, $limit);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getRelationshipById: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyRelationshipTypes: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
     use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    @@ -10154,19 +10416,19 @@ use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
     my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
     my $accept = application/json; # String | 
     my $domainName = domainName_example; # String | domain name
    -my $relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; # String | 
    -my $relationshipId = relationshipId_example; # String | 
    +my $offset = 56; # Integer | Pagination offset.
    +my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getRelationshipById(accept => $accept, domainName => $domainName, relationshipTypeName => $relationshipTypeName, relationshipId => $relationshipId);
    +    my $result = $api_instance->getTopologyRelationshipTypes(accept => $accept, domainName => $domainName, offset => $offset, limit => $limit);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getRelationshipById: $@\n";
    +    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyRelationshipTypes: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -10177,28 +10439,28 @@ from pprint import pprint
     api_instance = openapi_client.EntitiesAndRelationshipsApi()
     accept = application/json # String |  (default to application/json)
     domainName = domainName_example # String | domain name (default to null)
    -relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER # String |  (default to null)
    -relationshipId = relationshipId_example # String |  (default to null)
    +offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    +limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get relationship with specified id. Specified id represents the relationship instance.
    -    api_response = api_instance.get_relationship_by_id(accept, domainName, relationshipTypeName, relationshipId)
    +    # Get all the available topology relationship types.
    +    api_response = api_instance.get_topology_relationship_types(accept, domainName, offset=offset, limit=limit)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getRelationshipById: %s\n" % e)
    + print("Exception when calling EntitiesAndRelationshipsApi->getTopologyRelationshipTypes: %s\n" % e)
    -
    +
    extern crate EntitiesAndRelationshipsApi;
     
     pub fn main() {
         let accept = application/json; // String
         let domainName = domainName_example; // String
    -    let relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String
    -    let relationshipId = relationshipId_example; // String
    +    let offset = 56; // Integer
    +    let limit = 56; // Integer
     
         let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getRelationshipById(accept, domainName, relationshipTypeName, relationshipId, &context).wait();
    +    let result = client.getTopologyRelationshipTypes(accept, domainName, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -10223,7 +10485,7 @@ pub fn main() {
     
     
     
    -    
    +
    @@ -10242,11 +10504,19 @@ domain name - relationshipTypeName* + + +
    Header parameters
    + + + + + + - +
    NameDescription
    Accept* -
    +
    @@ -10262,49 +10532,51 @@ domain name
    relationshipId*
    + + + +
    Query parameters
    + + + + + + -
    NameDescription
    offset -
    +
    - String + Integer +
    +Pagination offset. +
    -
    - Required -
    - -
    Header parameters
    - - - - - - + @@ -10312,27 +10584,24 @@ domain name
    NameDescription
    Accept*
    limit -
    +
    - String + Integer +
    +Result limiter. +
    -
    - Required -
    - - -

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    +

    Schemas

    +
    +
    -

    getRelationshipsByType

    -

    Get topology relationships of a specific relationship type name.

    +

    createSchema

    +

    Create a new schema.

    -

    Get topology relationships of a specific relationship type name.

    +

    Create a new schema. The request body shall contain the schema in YANG format.


    -
    /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships
    +
    /schemas

    Usage and SDK Samples

    -
    -
    curl -X GET \
    - -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310"]&offset=56&limit=56"
    +                          
    +
    curl -X POST \
    + -H "Accept: application/problem+json" \
    + -H "Content-Type: multipart/form-data" \
    + "https://localhost/topology-inventory/v1alpha11/schemas"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +import org.openapitools.client.api.SchemasApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        String relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    -        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -        String scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        String contentType = multipart/form-data; // String | 
    +        File file = BINARY_DATA_HERE; // File | multipartFile
     
             try {
    -            RelationshipsResponseMessage result = apiInstance.getRelationshipsByType(accept, domainName, relationshipTypeName, targetFilter, scopeFilter, offset, limit);
    -            System.out.println(result);
    +            apiInstance.createSchema(accept, contentType, file);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getRelationshipsByType");
    +            System.err.println("Exception when calling SchemasApi#createSchema");
                 e.printStackTrace();
             }
         }
    @@ -10879,82 +11065,62 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String domainName = new String(); // String | domain name
    -final String relationshipTypeName = new String(); // String | 
    -final String targetFilter = new String(); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -final String scopeFilter = new String(); // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -final Integer offset = new Integer(); // Integer | Pagination offset.
    -final Integer limit = new Integer(); // Integer | Result limiter.
    +final String contentType = new String(); // String | 
    +final File file = new File(); // File | multipartFile
     
     try {
    -    final result = await api_instance.getRelationshipsByType(accept, domainName, relationshipTypeName, targetFilter, scopeFilter, offset, limit);
    +    final result = await api_instance.createSchema(accept, contentType, file);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getRelationshipsByType: $e\n');
    +    print('Exception when calling DefaultApi->createSchema: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +                          
    +
    import org.openapitools.client.api.SchemasApi;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        String relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    -        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -        String scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        String contentType = multipart/form-data; // String | 
    +        File file = BINARY_DATA_HERE; // File | multipartFile
     
             try {
    -            RelationshipsResponseMessage result = apiInstance.getRelationshipsByType(accept, domainName, relationshipTypeName, targetFilter, scopeFilter, offset, limit);
    -            System.out.println(result);
    +            apiInstance.createSchema(accept, contentType, file);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getRelationshipsByType");
    +            System.err.println("Exception when calling SchemasApi#createSchema");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    +SchemasApi *apiInstance = [[SchemasApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *domainName = domainName_example; // domain name (default to null)
    -String *relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; //  (default to null)
    -String *targetFilter = /attributes(nCI,nRPCI); // Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    -String *scopeFilter = /attributes[@nRTAC=310"]; // Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
    -Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    -Integer *limit = 56; // Result limiter. (optional) (default to 500)
    +String *contentType = multipart/form-data; //  (default to multipart/form-data)
    +File *file = BINARY_DATA_HERE; // multipartFile (default to null)
     
    -// Get topology relationships of a specific relationship type name.
    -[apiInstance getRelationshipsByTypeWith:accept
    -    domainName:domainName
    -    relationshipTypeName:relationshipTypeName
    -    targetFilter:targetFilter
    -    scopeFilter:scopeFilter
    -    offset:offset
    -    limit:limit
    -              completionHandler: ^(RelationshipsResponseMessage output, NSError* error) {
    -    if (output) {
    -        NSLog(@"%@", output);
    -    }
    +// Create a new schema.
    +[apiInstance createSchemaWith:accept
    +    contentType:contentType
    +    file:file
    +              completionHandler: ^(NSError* error) {
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -10962,36 +11128,30 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.SchemasApi()
     var accept = application/json; // {String} 
    -var domainName = domainName_example; // {String} domain name
    -var relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // {String} 
    -var opts = {
    -  'targetFilter': /attributes(nCI,nRPCI), // {String} Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -  'scopeFilter': /attributes[@nRTAC=310"], // {String} Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -  'offset': 56, // {Integer} Pagination offset.
    -  'limit': 56 // {Integer} Result limiter.
    -};
    +var contentType = multipart/form-data; // {String} 
    +var file = BINARY_DATA_HERE; // {File} multipartFile
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully. Returned data: ' + data);
    +    console.log('API called successfully.');
       }
     };
    -api.getRelationshipsByType(accept, domainName, relationshipTypeName, opts, callback);
    +api.createSchema(accept, contentType, file, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -11000,27 +11160,22 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getRelationshipsByTypeExample
    +    public class createSchemaExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new EntitiesAndRelationshipsApi();
    +            var apiInstance = new SchemasApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var domainName = domainName_example;  // String | domain name (default to null)
    -            var relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER;  // String |  (default to null)
    -            var targetFilter = /attributes(nCI,nRPCI);  // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional)  (default to null)
    -            var scopeFilter = /attributes[@nRTAC=310"];  // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional)  (default to null)
    -            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    -            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
    +            var contentType = multipart/form-data;  // String |  (default to multipart/form-data)
    +            var file = BINARY_DATA_HERE;  // File | multipartFile (default to null)
     
                 try {
    -                // Get topology relationships of a specific relationship type name.
    -                RelationshipsResponseMessage result = apiInstance.getRelationshipsByType(accept, domainName, relationshipTypeName, targetFilter, scopeFilter, offset, limit);
    -                Debug.WriteLine(result);
    +                // Create a new schema.
    +                apiInstance.createSchema(accept, contentType, file);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getRelationshipsByType: " + e.Message );
    +                Debug.Print("Exception when calling SchemasApi.createSchema: " + e.Message );
                 }
             }
         }
    @@ -11028,54 +11183,44 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    +$api_instance = new OpenAPITools\Client\Api\SchemasApi();
     $accept = application/json; // String | 
    -$domainName = domainName_example; // String | domain name
    -$relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
    -$targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -$scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -$offset = 56; // Integer | Pagination offset.
    -$limit = 56; // Integer | Result limiter.
    +$contentType = multipart/form-data; // String | 
    +$file = BINARY_DATA_HERE; // File | multipartFile
     
     try {
    -    $result = $api_instance->getRelationshipsByType($accept, $domainName, $relationshipTypeName, $targetFilter, $scopeFilter, $offset, $limit);
    -    print_r($result);
    +    $api_instance->createSchema($accept, $contentType, $file);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getRelationshipsByType: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling SchemasApi->createSchema: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    +use WWW::OPenAPIClient::SchemasApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    +my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
     my $accept = application/json; # String | 
    -my $domainName = domainName_example; # String | domain name
    -my $relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; # String | 
    -my $targetFilter = /attributes(nCI,nRPCI); # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -my $scopeFilter = /attributes[@nRTAC=310"]; # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -my $offset = 56; # Integer | Pagination offset.
    -my $limit = 56; # Integer | Result limiter.
    +my $contentType = multipart/form-data; # String | 
    +my $file = BINARY_DATA_HERE; # File | multipartFile
     
     eval {
    -    my $result = $api_instance->getRelationshipsByType(accept => $accept, domainName => $domainName, relationshipTypeName => $relationshipTypeName, targetFilter => $targetFilter, scopeFilter => $scopeFilter, offset => $offset, limit => $limit);
    -    print Dumper($result);
    +    $api_instance->createSchema(accept => $accept, contentType => $contentType, file => $file);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getRelationshipsByType: $@\n";
    +    warn "Exception when calling SchemasApi->createSchema: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -11083,37 +11228,28 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.EntitiesAndRelationshipsApi()
    +api_instance = openapi_client.SchemasApi()
     accept = application/json # String |  (default to application/json)
    -domainName = domainName_example # String | domain name (default to null)
    -relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER # String |  (default to null)
    -targetFilter = /attributes(nCI,nRPCI) # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    -scopeFilter = /attributes[@nRTAC=310"] # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
    -offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    -limit = 56 # Integer | Result limiter. (optional) (default to 500)
    +contentType = multipart/form-data # String |  (default to multipart/form-data)
    +file = BINARY_DATA_HERE # File | multipartFile (default to null)
     
     try:
    -    # Get topology relationships of a specific relationship type name.
    -    api_response = api_instance.get_relationships_by_type(accept, domainName, relationshipTypeName, targetFilter=targetFilter, scopeFilter=scopeFilter, offset=offset, limit=limit)
    -    pprint(api_response)
    +    # Create a new schema.
    +    api_instance.create_schema(accept, contentType, file)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getRelationshipsByType: %s\n" % e)
    + print("Exception when calling SchemasApi->createSchema: %s\n" % e)
    -
    -
    extern crate EntitiesAndRelationshipsApi;
    +                            
    +
    extern crate SchemasApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let domainName = domainName_example; // String
    -    let relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String
    -    let targetFilter = /attributes(nCI,nRPCI); // String
    -    let scopeFilter = /attributes[@nRTAC=310"]; // String
    -    let offset = 56; // Integer
    -    let limit = 56; // Integer
    +    let contentType = multipart/form-data; // String
    +    let file = BINARY_DATA_HERE; // File
     
    -    let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getRelationshipsByType(accept, domainName, relationshipTypeName, targetFilter, scopeFilter, offset, limit, &context).wait();
    +    let mut context = SchemasApi::Context::default();
    +    let result = client.createSchema(accept, contentType, file, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -11128,26 +11264,24 @@ pub fn main() {
     
                               

    Parameters

    -
    Path parameters
    + +
    Header parameters
    - - - - - + + + + + - +
    NameDescription
    domainName*
    NameDescription
    Accept* -
    +
    String -
    -domain name -
    Required @@ -11157,11 +11291,11 @@ domain name
    relationshipTypeName*
    Content-Type* -
    +
    @@ -11179,23 +11313,30 @@ domain name
    -
    Header parameters
    + +
    Form parameters
    - +
    Name Description
    Accept*
    file* -
    +
    - String + File + + (binary) + +
    +multipartFile +
    Required @@ -11208,140 +11349,34 @@ domain name
    - -
    Query parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    targetFilter - - -
    -
    -
    - - String - - -
    -Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. -
    -
    -
    -
    -
    scopeFilter - - -
    -
    -
    - - String - - -
    -Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. -
    -
    -
    -
    -
    offset - - -
    -
    -
    - - Integer - - -
    -Pagination offset. -
    -
    -
    -
    -
    limit - - -
    -
    -
    - - Integer - - -
    -Result limiter. -
    -
    -
    -
    -
    -

    Responses

    -

    -

    +

    +

    -
    -
    -
    -
    -
    -
    -

    getTopologyByEntityTypeName

    -

    Get all topology entities of a specific entity type.

    -
    -
    -
    -

    -

    Get all topology entities of a specific entity type.

    -

    -
    -
    /domains/{domainName}/entity-types/{entityTypeName}/entities
    -

    -

    Usage and SDK Samples

    -

    - - -
    -
    -
    curl -X GET \
    - -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310"]&offset=56&limit=56"
    -
    -
    -
    -
    import org.openapitools.client.*;
    -import org.openapitools.client.auth.*;
    -import org.openapitools.client.model.*;
    -import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    -
    -import java.io.File;
    -import java.util.*;
    -
    -public class EntitiesAndRelationshipsApiExample {
    -    public static void main(String[] args) {
    -
    -        // Create an instance of the API class
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    -        String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        String entityTypeName = entityTypeName_example; // String | 
    -        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -        String scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    -
    -        try {
    -            EntitiesResponseMessage result = apiInstance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyByEntityTypeName");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    -
    - -
    -
    import 'package:openapi/api.dart';
    -
    -final api_instance = DefaultApi();
    -
    -final String accept = new String(); // String | 
    -final String domainName = new String(); // String | domain name
    -final String entityTypeName = new String(); // String | 
    -final String targetFilter = new String(); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -final String scopeFilter = new String(); // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -final Integer offset = new Integer(); // Integer | Pagination offset.
    -final Integer limit = new Integer(); // Integer | Result limiter.
    -
    -try {
    -    final result = await api_instance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
    -    print(result);
    -} catch (e) {
    -    print('Exception when calling DefaultApi->getTopologyByEntityTypeName: $e\n');
    -}
    -
    -
    -
    - -
    -
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    -
    -public class EntitiesAndRelationshipsApiExample {
    -    public static void main(String[] args) {
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    -        String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        String entityTypeName = entityTypeName_example; // String | 
    -        String targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -        String scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    -
    -        try {
    -            EntitiesResponseMessage result = apiInstance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
    -            System.out.println(result);
    -        } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyByEntityTypeName");
    -            e.printStackTrace();
    -        }
    -    }
    -}
    -
    - -
    -
    
    -
    -// Create an instance of the API class
    -EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    -String *accept = application/json; //  (default to application/json)
    -String *domainName = domainName_example; // domain name (default to null)
    -String *entityTypeName = entityTypeName_example; //  (default to null)
    -String *targetFilter = /attributes(nCI,nRPCI); // Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    -String *scopeFilter = /attributes[@nRTAC=310"]; // Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
    -Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    -Integer *limit = 56; // Result limiter. (optional) (default to 500)
    -
    -// Get all topology entities of a specific entity type.
    -[apiInstance getTopologyByEntityTypeNameWith:accept
    -    domainName:domainName
    -    entityTypeName:entityTypeName
    -    targetFilter:targetFilter
    -    scopeFilter:scopeFilter
    -    offset:offset
    -    limit:limit
    -              completionHandler: ^(EntitiesResponseMessage output, NSError* error) {
    -    if (output) {
    -        NSLog(@"%@", output);
    -    }
    -    if (error) {
    -        NSLog(@"Error: %@", error);
    -    }
    -}];
    -
    -
    - -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    -
    -// Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    -var accept = application/json; // {String} 
    -var domainName = domainName_example; // {String} domain name
    -var entityTypeName = entityTypeName_example; // {String} 
    -var opts = {
    -  'targetFilter': /attributes(nCI,nRPCI), // {String} Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -  'scopeFilter': /attributes[@nRTAC=310"], // {String} Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -  'offset': 56, // {Integer} Pagination offset.
    -  'limit': 56 // {Integer} Result limiter.
    -};
    -
    -var callback = function(error, data, response) {
    -  if (error) {
    -    console.error(error);
    -  } else {
    -    console.log('API called successfully. Returned data: ' + data);
    -  }
    -};
    -api.getTopologyByEntityTypeName(accept, domainName, entityTypeName, opts, callback);
    -
    -
    - - -
    -
    using System;
    -using System.Diagnostics;
    -using Org.OpenAPITools.Api;
    -using Org.OpenAPITools.Client;
    -using Org.OpenAPITools.Model;
    -
    -namespace Example
    -{
    -    public class getTopologyByEntityTypeNameExample
    -    {
    -        public void main()
    -        {
    -
    -            // Create an instance of the API class
    -            var apiInstance = new EntitiesAndRelationshipsApi();
    -            var accept = application/json;  // String |  (default to application/json)
    -            var domainName = domainName_example;  // String | domain name (default to null)
    -            var entityTypeName = entityTypeName_example;  // String |  (default to null)
    -            var targetFilter = /attributes(nCI,nRPCI);  // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional)  (default to null)
    -            var scopeFilter = /attributes[@nRTAC=310"];  // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional)  (default to null)
    -            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    -            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
    -
    -            try {
    -                // Get all topology entities of a specific entity type.
    -                EntitiesResponseMessage result = apiInstance.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit);
    -                Debug.WriteLine(result);
    -            } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyByEntityTypeName: " + e.Message );
    -            }
    -        }
    -    }
    -}
    -
    -
    - -
    -
    <?php
    -require_once(__DIR__ . '/vendor/autoload.php');
    -
    -// Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    -$accept = application/json; // String | 
    -$domainName = domainName_example; // String | domain name
    -$entityTypeName = entityTypeName_example; // String | 
    -$targetFilter = /attributes(nCI,nRPCI); // String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -$scopeFilter = /attributes[@nRTAC=310"]; // String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -$offset = 56; // Integer | Pagination offset.
    -$limit = 56; // Integer | Result limiter.
    -
    -try {
    -    $result = $api_instance->getTopologyByEntityTypeName($accept, $domainName, $entityTypeName, $targetFilter, $scopeFilter, $offset, $limit);
    -    print_r($result);
    -} catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyByEntityTypeName: ', $e->getMessage(), PHP_EOL;
    -}
    -?>
    -
    - -
    -
    use Data::Dumper;
    -use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    -
    -# Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    -my $accept = application/json; # String | 
    -my $domainName = domainName_example; # String | domain name
    -my $entityTypeName = entityTypeName_example; # String | 
    -my $targetFilter = /attributes(nCI,nRPCI); # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.
    -my $scopeFilter = /attributes[@nRTAC=310"]; # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.
    -my $offset = 56; # Integer | Pagination offset.
    -my $limit = 56; # Integer | Result limiter.
    -
    -eval {
    -    my $result = $api_instance->getTopologyByEntityTypeName(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, targetFilter => $targetFilter, scopeFilter => $scopeFilter, offset => $offset, limit => $limit);
    -    print Dumper($result);
    -};
    -if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyByEntityTypeName: $@\n";
    -}
    -
    - -
    -
    from __future__ import print_statement
    -import time
    -import openapi_client
    -from openapi_client.rest import ApiException
    -from pprint import pprint
    -
    -# Create an instance of the API class
    -api_instance = openapi_client.EntitiesAndRelationshipsApi()
    -accept = application/json # String |  (default to application/json)
    -domainName = domainName_example # String | domain name (default to null)
    -entityTypeName = entityTypeName_example # String |  (default to null)
    -targetFilter = /attributes(nCI,nRPCI) # String | Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. (optional) (default to null)
    -scopeFilter = /attributes[@nRTAC=310"] # String | Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. (optional) (default to null)
    -offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    -limit = 56 # Integer | Result limiter. (optional) (default to 500)
    -
    -try:
    -    # Get all topology entities of a specific entity type.
    -    api_response = api_instance.get_topology_by_entity_type_name(accept, domainName, entityTypeName, targetFilter=targetFilter, scopeFilter=scopeFilter, offset=offset, limit=limit)
    -    pprint(api_response)
    -except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getTopologyByEntityTypeName: %s\n" % e)
    -
    - -
    -
    extern crate EntitiesAndRelationshipsApi;
    -
    -pub fn main() {
    -    let accept = application/json; // String
    -    let domainName = domainName_example; // String
    -    let entityTypeName = entityTypeName_example; // String
    -    let targetFilter = /attributes(nCI,nRPCI); // String
    -    let scopeFilter = /attributes[@nRTAC=310"]; // String
    -    let offset = 56; // Integer
    -    let limit = 56; // Integer
    -
    -    let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getTopologyByEntityTypeName(accept, domainName, entityTypeName, targetFilter, scopeFilter, offset, limit, &context).wait();
    -
    -    println!("{:?}", result);
    -}
    -
    -
    -
    - -

    Scopes

    - - -
    - -

    Parameters

    - -
    Path parameters
    - - - - - - - - - - - - - -
    NameDescription
    domainName* - - -
    -
    -
    - - String - - -
    -domain name -
    -
    -
    - Required -
    -
    -
    -
    entityTypeName* - - -
    -
    -
    - - String - - -
    -
    - Required -
    -
    -
    -
    - -
    Header parameters
    - - - - - - - - - -
    NameDescription
    Accept* - - -
    -
    -
    - - String - - -
    -
    - Required -
    -
    -
    -
    - - - -
    Query parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameDescription
    targetFilter - - -
    -
    -
    - - String - - -
    -Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. -
    -
    -
    -
    -
    scopeFilter - - -
    -
    -
    - - String - - -
    -Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. -
    -
    -
    -
    -
    offset - - -
    -
    -
    - - Integer - - -
    -Pagination offset. -
    -
    -
    -
    -
    limit - - -
    -
    -
    - - Integer - - -
    -Result limiter. -
    -
    -
    -
    -
    - -

    Responses

    -

    -

    - - - - - - -
    -
    -
    + +
    +
    +
    - +
    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getTopologyById

    -

    Get topology for entity type name with specified id. Specified id represents the entity instance.

    +

    deleteSchema

    +

    Delete a schema.

    -

    Get topology for entity type name with specified id. Specified id represents the entity instance.

    +

    Delete a schema.


    -
    /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}
    +
    /schemas/{schemaName}

    Usage and SDK Samples

    -
    -
    curl -X GET \
    - -H "Accept: application/yang.data+json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}"
    +                          
    +
    curl -X DELETE \
    + -H "Accept: application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/schemas/{schemaName}"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +import org.openapitools.client.api.SchemasApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        String entityTypeName = entityTypeName_example; // String | 
    -        String entityId = entityId_example; // String | 
    +        String schemaName = schemaName_example; // String | 
     
             try {
    -            Object result = apiInstance.getTopologyById(accept, domainName, entityTypeName, entityId);
    -            System.out.println(result);
    +            apiInstance.deleteSchema(accept, schemaName);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyById");
    +            System.err.println("Exception when calling SchemasApi#deleteSchema");
                 e.printStackTrace();
             }
         }
    @@ -12676,70 +11889,58 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String domainName = new String(); // String | domain name
    -final String entityTypeName = new String(); // String | 
    -final String entityId = new String(); // String | 
    +final String schemaName = new String(); // String | 
     
     try {
    -    final result = await api_instance.getTopologyById(accept, domainName, entityTypeName, entityId);
    +    final result = await api_instance.deleteSchema(accept, schemaName);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getTopologyById: $e\n');
    +    print('Exception when calling DefaultApi->deleteSchema: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +                          
    +
    import org.openapitools.client.api.SchemasApi;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        String entityTypeName = entityTypeName_example; // String | 
    -        String entityId = entityId_example; // String | 
    +        String schemaName = schemaName_example; // String | 
     
             try {
    -            Object result = apiInstance.getTopologyById(accept, domainName, entityTypeName, entityId);
    -            System.out.println(result);
    +            apiInstance.deleteSchema(accept, schemaName);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyById");
    +            System.err.println("Exception when calling SchemasApi#deleteSchema");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    +SchemasApi *apiInstance = [[SchemasApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *domainName = domainName_example; // domain name (default to null)
    -String *entityTypeName = entityTypeName_example; //  (default to null)
    -String *entityId = entityId_example; //  (default to null)
    +String *schemaName = schemaName_example; //  (default to o-ran-smo-teiv-ran)
     
    -// Get topology for entity type name with specified id. Specified id represents the entity instance.
    -[apiInstance getTopologyByIdWith:accept
    -    domainName:domainName
    -    entityTypeName:entityTypeName
    -    entityId:entityId
    -              completionHandler: ^(Object output, NSError* error) {
    -    if (output) {
    -        NSLog(@"%@", output);
    -    }
    +// Delete a schema.
    +[apiInstance deleteSchemaWith:accept
    +    schemaName:schemaName
    +              completionHandler: ^(NSError* error) {
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -12747,31 +11948,29 @@ String *entityId = entityId_example; //  (default to null)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.SchemasApi()
     var accept = application/json; // {String} 
    -var domainName = domainName_example; // {String} domain name
    -var entityTypeName = entityTypeName_example; // {String} 
    -var entityId = entityId_example; // {String} 
    +var schemaName = schemaName_example; // {String} 
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully. Returned data: ' + data);
    +    console.log('API called successfully.');
       }
     };
    -api.getTopologyById(accept, domainName, entityTypeName, entityId, callback);
    +api.deleteSchema(accept, schemaName, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -12780,24 +11979,21 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getTopologyByIdExample
    +    public class deleteSchemaExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new EntitiesAndRelationshipsApi();
    +            var apiInstance = new SchemasApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var domainName = domainName_example;  // String | domain name (default to null)
    -            var entityTypeName = entityTypeName_example;  // String |  (default to null)
    -            var entityId = entityId_example;  // String |  (default to null)
    +            var schemaName = schemaName_example;  // String |  (default to o-ran-smo-teiv-ran)
     
                 try {
    -                // Get topology for entity type name with specified id. Specified id represents the entity instance.
    -                Object result = apiInstance.getTopologyById(accept, domainName, entityTypeName, entityId);
    -                Debug.WriteLine(result);
    +                // Delete a schema.
    +                apiInstance.deleteSchema(accept, schemaName);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyById: " + e.Message );
    +                Debug.Print("Exception when calling SchemasApi.deleteSchema: " + e.Message );
                 }
             }
         }
    @@ -12805,48 +12001,42 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    +$api_instance = new OpenAPITools\Client\Api\SchemasApi();
     $accept = application/json; // String | 
    -$domainName = domainName_example; // String | domain name
    -$entityTypeName = entityTypeName_example; // String | 
    -$entityId = entityId_example; // String | 
    +$schemaName = schemaName_example; // String | 
     
     try {
    -    $result = $api_instance->getTopologyById($accept, $domainName, $entityTypeName, $entityId);
    -    print_r($result);
    +    $api_instance->deleteSchema($accept, $schemaName);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyById: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling SchemasApi->deleteSchema: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    +use WWW::OPenAPIClient::SchemasApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    +my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
     my $accept = application/json; # String | 
    -my $domainName = domainName_example; # String | domain name
    -my $entityTypeName = entityTypeName_example; # String | 
    -my $entityId = entityId_example; # String | 
    +my $schemaName = schemaName_example; # String | 
     
     eval {
    -    my $result = $api_instance->getTopologyById(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, entityId => $entityId);
    -    print Dumper($result);
    +    $api_instance->deleteSchema(accept => $accept, schemaName => $schemaName);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyById: $@\n";
    +    warn "Exception when calling SchemasApi->deleteSchema: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -12854,31 +12044,26 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.EntitiesAndRelationshipsApi()
    +api_instance = openapi_client.SchemasApi()
     accept = application/json # String |  (default to application/json)
    -domainName = domainName_example # String | domain name (default to null)
    -entityTypeName = entityTypeName_example # String |  (default to null)
    -entityId = entityId_example # String |  (default to null)
    +schemaName = schemaName_example # String |  (default to o-ran-smo-teiv-ran)
     
     try:
    -    # Get topology for entity type name with specified id. Specified id represents the entity instance.
    -    api_response = api_instance.get_topology_by_id(accept, domainName, entityTypeName, entityId)
    -    pprint(api_response)
    +    # Delete a schema.
    +    api_instance.delete_schema(accept, schemaName)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getTopologyById: %s\n" % e)
    + print("Exception when calling SchemasApi->deleteSchema: %s\n" % e)
    -
    -
    extern crate EntitiesAndRelationshipsApi;
    +                            
    +
    extern crate SchemasApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let domainName = domainName_example; // String
    -    let entityTypeName = entityTypeName_example; // String
    -    let entityId = entityId_example; // String
    +    let schemaName = schemaName_example; // String
     
    -    let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getTopologyById(accept, domainName, entityTypeName, entityId, &context).wait();
    +    let mut context = SchemasApi::Context::default();
    +    let result = client.deleteSchema(accept, schemaName, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -12899,54 +12084,11 @@ pub fn main() {
                                       Name
                                       Description
                                     
    -                                  domainName*
    -
    -
    -
    -    
    -
    -
    - - String - - -
    -domain name -
    -
    -
    - Required -
    -
    -
    - - - - entityTypeName* - - - -
    -
    -
    - - String - - -
    -
    - Required -
    -
    -
    - - - - entityId* + schemaName* -
    +
    @@ -12974,7 +12116,7 @@ domain name -
    +
    @@ -12996,132 +12138,34 @@ domain name

    Responses

    -

    -

    - - - - - - -
    -
    -
    - -
    - -
    -
    -

    -

    - -

    -
    -
    +
    +
    -

    getTopologyEntityTypes

    -

    Get all the available topology entity types in domain name.

    +

    getSchemaByName

    +

    Get the model schema.

    -

    Get all the available topology entity types in domain name.

    +

    Get the model schema by name.


    -
    /domains/{domainName}/entity-types
    +
    /schemas/{schemaName}/content

    Usage and SDK Samples

    -
    +
    curl -X GET \
    - -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types?offset=56&limit=56"
    + -H "Accept: text/plain,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/schemas/{schemaName}/content"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +import org.openapitools.client.api.SchemasApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        String schemaName = schemaName_example; // String | 
     
             try {
    -            EntityTypes result = apiInstance.getTopologyEntityTypes(accept, domainName, offset, limit);
    +            'String' result = apiInstance.getSchemaByName(accept, schemaName);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyEntityTypes");
    +            System.err.println("Exception when calling SchemasApi#getSchemaByName");
                 e.printStackTrace();
             }
         }
    @@ -13556,67 +12598,59 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String domainName = new String(); // String | domain name
    -final Integer offset = new Integer(); // Integer | Pagination offset.
    -final Integer limit = new Integer(); // Integer | Result limiter.
    +final String schemaName = new String(); // String | 
     
     try {
    -    final result = await api_instance.getTopologyEntityTypes(accept, domainName, offset, limit);
    +    final result = await api_instance.getSchemaByName(accept, schemaName);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getTopologyEntityTypes: $e\n');
    +    print('Exception when calling DefaultApi->getSchemaByName: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +                          
    +
    import org.openapitools.client.api.SchemasApi;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        String schemaName = schemaName_example; // String | 
     
             try {
    -            EntityTypes result = apiInstance.getTopologyEntityTypes(accept, domainName, offset, limit);
    +            'String' result = apiInstance.getSchemaByName(accept, schemaName);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyEntityTypes");
    +            System.err.println("Exception when calling SchemasApi#getSchemaByName");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    +SchemasApi *apiInstance = [[SchemasApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *domainName = domainName_example; // domain name (default to null)
    -Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    -Integer *limit = 56; // Result limiter. (optional) (default to 500)
    +String *schemaName = schemaName_example; //  (default to o-ran-smo-teiv-ran)
     
    -// Get all the available topology entity types in domain name.
    -[apiInstance getTopologyEntityTypesWith:accept
    -    domainName:domainName
    -    offset:offset
    -    limit:limit
    -              completionHandler: ^(EntityTypes output, NSError* error) {
    +// Get the model schema.
    +[apiInstance getSchemaByNameWith:accept
    +    schemaName:schemaName
    +              completionHandler: ^('String' output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -13627,17 +12661,13 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.SchemasApi()
     var accept = application/json; // {String} 
    -var domainName = domainName_example; // {String} domain name
    -var opts = {
    -  'offset': 56, // {Integer} Pagination offset.
    -  'limit': 56 // {Integer} Result limiter.
    -};
    +var schemaName = schemaName_example; // {String} 
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -13646,14 +12676,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getTopologyEntityTypes(accept, domainName, opts, callback);
    +api.getSchemaByName(accept, schemaName, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -13662,24 +12692,22 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getTopologyEntityTypesExample
    +    public class getSchemaByNameExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new EntitiesAndRelationshipsApi();
    +            var apiInstance = new SchemasApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var domainName = domainName_example;  // String | domain name (default to null)
    -            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    -            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
    +            var schemaName = schemaName_example;  // String |  (default to o-ran-smo-teiv-ran)
     
                 try {
    -                // Get all the available topology entity types in domain name.
    -                EntityTypes result = apiInstance.getTopologyEntityTypes(accept, domainName, offset, limit);
    +                // Get the model schema.
    +                'String' result = apiInstance.getSchemaByName(accept, schemaName);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyEntityTypes: " + e.Message );
    +                Debug.Print("Exception when calling SchemasApi.getSchemaByName: " + e.Message );
                 }
             }
         }
    @@ -13687,48 +12715,44 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    +$api_instance = new OpenAPITools\Client\Api\SchemasApi();
     $accept = application/json; // String | 
    -$domainName = domainName_example; // String | domain name
    -$offset = 56; // Integer | Pagination offset.
    -$limit = 56; // Integer | Result limiter.
    +$schemaName = schemaName_example; // String | 
     
     try {
    -    $result = $api_instance->getTopologyEntityTypes($accept, $domainName, $offset, $limit);
    +    $result = $api_instance->getSchemaByName($accept, $schemaName);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyEntityTypes: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling SchemasApi->getSchemaByName: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    +use WWW::OPenAPIClient::SchemasApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    +my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
     my $accept = application/json; # String | 
    -my $domainName = domainName_example; # String | domain name
    -my $offset = 56; # Integer | Pagination offset.
    -my $limit = 56; # Integer | Result limiter.
    +my $schemaName = schemaName_example; # String | 
     
     eval {
    -    my $result = $api_instance->getTopologyEntityTypes(accept => $accept, domainName => $domainName, offset => $offset, limit => $limit);
    +    my $result = $api_instance->getSchemaByName(accept => $accept, schemaName => $schemaName);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyEntityTypes: $@\n";
    +    warn "Exception when calling SchemasApi->getSchemaByName: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -13736,31 +12760,27 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.EntitiesAndRelationshipsApi()
    +api_instance = openapi_client.SchemasApi()
     accept = application/json # String |  (default to application/json)
    -domainName = domainName_example # String | domain name (default to null)
    -offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    -limit = 56 # Integer | Result limiter. (optional) (default to 500)
    +schemaName = schemaName_example # String |  (default to o-ran-smo-teiv-ran)
     
     try:
    -    # Get all the available topology entity types in domain name.
    -    api_response = api_instance.get_topology_entity_types(accept, domainName, offset=offset, limit=limit)
    +    # Get the model schema.
    +    api_response = api_instance.get_schema_by_name(accept, schemaName)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getTopologyEntityTypes: %s\n" % e)
    + print("Exception when calling SchemasApi->getSchemaByName: %s\n" % e)
    -
    -
    extern crate EntitiesAndRelationshipsApi;
    +                            
    +
    extern crate SchemasApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let domainName = domainName_example; // String
    -    let offset = 56; // Integer
    -    let limit = 56; // Integer
    +    let schemaName = schemaName_example; // String
     
    -    let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getTopologyEntityTypes(accept, domainName, offset, limit, &context).wait();
    +    let mut context = SchemasApi::Context::default();
    +    let result = client.getSchemaByName(accept, schemaName, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -13781,20 +12801,17 @@ pub fn main() {
                                       Name
                                       Description
                                     
    -                                  domainName*
    +                                  schemaName*
     
     
     
    -    
    +
    String -
    -domain name -
    Required @@ -13816,7 +12833,7 @@ domain name -
    +
    @@ -13836,72 +12853,106 @@ domain name -
    Query parameters
    - - - - - - - - + - - + -
    NameDescription
    offset +

    Responses

    +

    +

    + -
    -
    -
    - - Integer - -
    -Pagination offset. -
    -
    -
    -
    -
    limit -
    -
    -
    - - Integer - -
    -Result limiter. -
    -
    -
    -
    -
    -

    Responses

    -

    -

    - +
    + +
    +
    +

    +

    + -

    -
    -
    +
    +
    -

    getTopologyRelationshipTypes

    -

    Get all the available topology relationship types.

    +

    getSchemas

    +

    Get a list of all schemas.

    -

    Get all the available topology relationship types.

    +

    Get a list of all schemas.


    -
    /domains/{domainName}/relationship-types
    +
    /schemas

    Usage and SDK Samples

    -
    +
    curl -X GET \
      -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/relationship-types?offset=56&limit=56"
    + "https://localhost/topology-inventory/v1alpha11/schemas?domain=ran&offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +import org.openapitools.client.api.SchemasApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    +        String domain = ran; // String | 
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            RelationshipTypes result = apiInstance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
    +            SchemaList result = apiInstance.getSchemas(accept, domain, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyRelationshipTypes");
    +            System.err.println("Exception when calling SchemasApi#getSchemas");
                 e.printStackTrace();
             }
         }
    @@ -14363,67 +13414,67 @@ public class EntitiesAndRelationshipsApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String domainName = new String(); // String | domain name
    +final String domain = new String(); // String | 
     final Integer offset = new Integer(); // Integer | Pagination offset.
     final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
    +    final result = await api_instance.getSchemas(accept, domain, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getTopologyRelationshipTypes: $e\n');
    +    print('Exception when calling DefaultApi->getSchemas: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.EntitiesAndRelationshipsApi;
    +                          
    +
    import org.openapitools.client.api.SchemasApi;
     
    -public class EntitiesAndRelationshipsApiExample {
    +public class SchemasApiExample {
         public static void main(String[] args) {
    -        EntitiesAndRelationshipsApi apiInstance = new EntitiesAndRelationshipsApi();
    +        SchemasApi apiInstance = new SchemasApi();
             String accept = application/json; // String | 
    -        String domainName = domainName_example; // String | domain name
    +        String domain = ran; // String | 
             Integer offset = 56; // Integer | Pagination offset.
             Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            RelationshipTypes result = apiInstance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
    +            SchemaList result = apiInstance.getSchemas(accept, domain, offset, limit);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling EntitiesAndRelationshipsApi#getTopologyRelationshipTypes");
    +            System.err.println("Exception when calling SchemasApi#getSchemas");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -EntitiesAndRelationshipsApi *apiInstance = [[EntitiesAndRelationshipsApi alloc] init];
    +SchemasApi *apiInstance = [[SchemasApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *domainName = domainName_example; // domain name (default to null)
    +String *domain = ran; //  (optional) (default to null)
     Integer *offset = 56; // Pagination offset. (optional) (default to 0)
     Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Get all the available topology relationship types.
    -[apiInstance getTopologyRelationshipTypesWith:accept
    -    domainName:domainName
    +// Get a list of all schemas.
    +[apiInstance getSchemasWith:accept
    +    domain:domain
         offset:offset
         limit:limit
    -              completionHandler: ^(RelationshipTypes output, NSError* error) {
    +              completionHandler: ^(SchemaList output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -14434,14 +13485,14 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.EntitiesAndRelationshipsApi()
    +var api = new TopologyExposureAndInventoryApi.SchemasApi()
     var accept = application/json; // {String} 
    -var domainName = domainName_example; // {String} domain name
     var opts = {
    +  'domain': ran, // {String} 
       'offset': 56, // {Integer} Pagination offset.
       'limit': 56 // {Integer} Result limiter.
     };
    @@ -14453,14 +13504,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getTopologyRelationshipTypes(accept, domainName, opts, callback);
    +api.getSchemas(accept, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -14469,24 +13520,24 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getTopologyRelationshipTypesExample
    +    public class getSchemasExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new EntitiesAndRelationshipsApi();
    +            var apiInstance = new SchemasApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var domainName = domainName_example;  // String | domain name (default to null)
    +            var domain = ran;  // String |  (optional)  (default to null)
                 var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
                 var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Get all the available topology relationship types.
    -                RelationshipTypes result = apiInstance.getTopologyRelationshipTypes(accept, domainName, offset, limit);
    +                // Get a list of all schemas.
    +                SchemaList result = apiInstance.getSchemas(accept, domain, offset, limit);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getTopologyRelationshipTypes: " + e.Message );
    +                Debug.Print("Exception when calling SchemasApi.getSchemas: " + e.Message );
                 }
             }
         }
    @@ -14494,48 +13545,48 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\EntitiesAndRelationshipsApi();
    +$api_instance = new OpenAPITools\Client\Api\SchemasApi();
     $accept = application/json; // String | 
    -$domainName = domainName_example; // String | domain name
    +$domain = ran; // String | 
     $offset = 56; // Integer | Pagination offset.
     $limit = 56; // Integer | Result limiter.
     
     try {
    -    $result = $api_instance->getTopologyRelationshipTypes($accept, $domainName, $offset, $limit);
    +    $result = $api_instance->getSchemas($accept, $domain, $offset, $limit);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling EntitiesAndRelationshipsApi->getTopologyRelationshipTypes: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling SchemasApi->getSchemas: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::EntitiesAndRelationshipsApi;
    +use WWW::OPenAPIClient::SchemasApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::EntitiesAndRelationshipsApi->new();
    +my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
     my $accept = application/json; # String | 
    -my $domainName = domainName_example; # String | domain name
    +my $domain = ran; # String | 
     my $offset = 56; # Integer | Pagination offset.
     my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    my $result = $api_instance->getTopologyRelationshipTypes(accept => $accept, domainName => $domainName, offset => $offset, limit => $limit);
    +    my $result = $api_instance->getSchemas(accept => $accept, domain => $domain, offset => $offset, limit => $limit);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling EntitiesAndRelationshipsApi->getTopologyRelationshipTypes: $@\n";
    +    warn "Exception when calling SchemasApi->getSchemas: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -14543,31 +13594,31 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.EntitiesAndRelationshipsApi()
    +api_instance = openapi_client.SchemasApi()
     accept = application/json # String |  (default to application/json)
    -domainName = domainName_example # String | domain name (default to null)
    +domain = ran # String |  (optional) (default to null)
     offset = 56 # Integer | Pagination offset. (optional) (default to 0)
     limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Get all the available topology relationship types.
    -    api_response = api_instance.get_topology_relationship_types(accept, domainName, offset=offset, limit=limit)
    +    # Get a list of all schemas.
    +    api_response = api_instance.get_schemas(accept, domain=domain, offset=offset, limit=limit)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling EntitiesAndRelationshipsApi->getTopologyRelationshipTypes: %s\n" % e)
    + print("Exception when calling SchemasApi->getSchemas: %s\n" % e)
    -
    -
    extern crate EntitiesAndRelationshipsApi;
    +                            
    +
    extern crate SchemasApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let domainName = domainName_example; // String
    +    let domain = ran; // String
         let offset = 56; // Integer
         let limit = 56; // Integer
     
    -    let mut context = EntitiesAndRelationshipsApi::Context::default();
    -    let result = client.getTopologyRelationshipTypes(accept, domainName, offset, limit, &context).wait();
    +    let mut context = SchemasApi::Context::default();
    +    let result = client.getSchemas(accept, domain, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -14582,26 +13633,24 @@ pub fn main() {
     
                               

    Parameters

    -
    Path parameters
    + +
    Header parameters
    - - - - - + + + + +
    NameDescription
    domainName*
    NameDescription
    Accept* -
    +
    String -
    -domain name -
    Required @@ -14613,17 +13662,19 @@ domain name
    -
    Header parameters
    + + +
    Query parameters
    - + -
    Name Description
    Accept*
    domain -
    +
    @@ -14631,29 +13682,16 @@ domain name
    -
    - Required -
    - - - -
    Query parameters
    - - - - -
    NameDescription
    offset -
    +
    @@ -14673,7 +13711,7 @@ Pagination offset.
    -
    +
    @@ -14692,23 +13730,23 @@ Result limiter.

    Responses

    -

    -

    +

    +

    -

    -
    -

    GeoQuery

    -
    -
    +
    +

    TopologyGroups

    +
    +
    -

    geoQueryTopologyAcrossDomains

    -

    Geo query topology entity or entities across topology domains.

    +

    createGroup

    +

    Create group.

    -

    Geo query topology entity or entities across topology domains.

    +

    Create group.


    -
    /geo-queries
    +
    /groups

    Usage and SDK Samples

    -
    +
    curl -X POST \
      -H "Accept: application/json,application/problem+json" \
      -H "Content-Type: application/json" \
    - "https://localhost/topology-inventory/v1alpha11/geo-queries?offset=56&limit=56" \
    + "https://localhost/topology-inventory/v1alpha11/groups" \
      -d '{
    -  "query" : "query"
    +  "groupName" : "groupName",
    +  "criteria" : {
    +    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +  }
     }'
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.GeoQueryApi;
    +import org.openapitools.client.api.TopologyGroupsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class GeoQueryApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        GeoQueryApi apiInstance = new GeoQueryApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
             String contentType = application/json; // String | 
    -        QueryMessage queryMessage = ; // QueryMessage | 
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        Group group = ; // Group | 
     
             try {
    -            Object result = apiInstance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
    +            GroupResponse result = apiInstance.createGroup(accept, contentType, group);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling GeoQueryApi#geoQueryTopologyAcrossDomains");
    +            System.err.println("Exception when calling TopologyGroupsApi#createGroup");
                 e.printStackTrace();
             }
         }
    @@ -15178,71 +14217,63 @@ public class GeoQueryApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
     final String contentType = new String(); // String | 
    -final QueryMessage queryMessage = new QueryMessage(); // QueryMessage | 
    -final Integer offset = new Integer(); // Integer | Pagination offset.
    -final Integer limit = new Integer(); // Integer | Result limiter.
    +final Group group = new Group(); // Group | 
     
     try {
    -    final result = await api_instance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
    +    final result = await api_instance.createGroup(accept, contentType, group);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->geoQueryTopologyAcrossDomains: $e\n');
    +    print('Exception when calling DefaultApi->createGroup: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.GeoQueryApi;
    +                          
    +
    import org.openapitools.client.api.TopologyGroupsApi;
     
    -public class GeoQueryApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
    -        GeoQueryApi apiInstance = new GeoQueryApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
             String contentType = application/json; // String | 
    -        QueryMessage queryMessage = ; // QueryMessage | 
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        Group group = ; // Group | 
     
             try {
    -            Object result = apiInstance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
    +            GroupResponse result = apiInstance.createGroup(accept, contentType, group);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling GeoQueryApi#geoQueryTopologyAcrossDomains");
    +            System.err.println("Exception when calling TopologyGroupsApi#createGroup");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -GeoQueryApi *apiInstance = [[GeoQueryApi alloc] init];
    +TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
     String *contentType = application/json; //  (default to application/json)
    -QueryMessage *queryMessage = ; // 
    -Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    -Integer *limit = 56; // Result limiter. (optional) (default to 500)
    +Group *group = ; // 
     
    -// Geo query topology entity or entities  across topology domains.
    -[apiInstance geoQueryTopologyAcrossDomainsWith:accept
    +// Create group.
    +[apiInstance createGroupWith:accept
         contentType:contentType
    -    queryMessage:queryMessage
    -    offset:offset
    -    limit:limit
    -              completionHandler: ^(Object output, NSError* error) {
    +    group:group
    +              completionHandler: ^(GroupResponse output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -15253,18 +14284,14 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.GeoQueryApi()
    +var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
     var accept = application/json; // {String} 
     var contentType = application/json; // {String} 
    -var queryMessage = ; // {QueryMessage} 
    -var opts = {
    -  'offset': 56, // {Integer} Pagination offset.
    -  'limit': 56 // {Integer} Result limiter.
    -};
    +var group = ; // {Group} 
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -15273,14 +14300,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, opts, callback);
    +api.createGroup(accept, contentType, group, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -15289,25 +14316,23 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class geoQueryTopologyAcrossDomainsExample
    +    public class createGroupExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new GeoQueryApi();
    +            var apiInstance = new TopologyGroupsApi();
                 var accept = application/json;  // String |  (default to application/json)
                 var contentType = application/json;  // String |  (default to application/json)
    -            var queryMessage = new QueryMessage(); // QueryMessage | 
    -            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    -            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
    +            var group = new Group(); // Group | 
     
                 try {
    -                // Geo query topology entity or entities  across topology domains.
    -                Object result = apiInstance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
    +                // Create group.
    +                GroupResponse result = apiInstance.createGroup(accept, contentType, group);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling GeoQueryApi.geoQueryTopologyAcrossDomains: " + e.Message );
    +                Debug.Print("Exception when calling TopologyGroupsApi.createGroup: " + e.Message );
                 }
             }
         }
    @@ -15315,50 +14340,46 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\GeoQueryApi();
    +$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
     $accept = application/json; // String | 
     $contentType = application/json; // String | 
    -$queryMessage = ; // QueryMessage | 
    -$offset = 56; // Integer | Pagination offset.
    -$limit = 56; // Integer | Result limiter.
    +$group = ; // Group | 
     
     try {
    -    $result = $api_instance->geoQueryTopologyAcrossDomains($accept, $contentType, $queryMessage, $offset, $limit);
    +    $result = $api_instance->createGroup($accept, $contentType, $group);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling GeoQueryApi->geoQueryTopologyAcrossDomains: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling TopologyGroupsApi->createGroup: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::GeoQueryApi;
    +use WWW::OPenAPIClient::TopologyGroupsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::GeoQueryApi->new();
    +my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
     my $accept = application/json; # String | 
     my $contentType = application/json; # String | 
    -my $queryMessage = WWW::OPenAPIClient::Object::QueryMessage->new(); # QueryMessage | 
    -my $offset = 56; # Integer | Pagination offset.
    -my $limit = 56; # Integer | Result limiter.
    +my $group = WWW::OPenAPIClient::Object::Group->new(); # Group | 
     
     eval {
    -    my $result = $api_instance->geoQueryTopologyAcrossDomains(accept => $accept, contentType => $contentType, queryMessage => $queryMessage, offset => $offset, limit => $limit);
    +    my $result = $api_instance->createGroup(accept => $accept, contentType => $contentType, group => $group);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling GeoQueryApi->geoQueryTopologyAcrossDomains: $@\n";
    +    warn "Exception when calling TopologyGroupsApi->createGroup: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -15366,33 +14387,29 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.GeoQueryApi()
    +api_instance = openapi_client.TopologyGroupsApi()
     accept = application/json # String |  (default to application/json)
     contentType = application/json # String |  (default to application/json)
    -queryMessage =  # QueryMessage | 
    -offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    -limit = 56 # Integer | Result limiter. (optional) (default to 500)
    +group =  # Group | 
     
     try:
    -    # Geo query topology entity or entities  across topology domains.
    -    api_response = api_instance.geo_query_topology_across_domains(accept, contentType, queryMessage, offset=offset, limit=limit)
    +    # Create group.
    +    api_response = api_instance.create_group(accept, contentType, group)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling GeoQueryApi->geoQueryTopologyAcrossDomains: %s\n" % e)
    + print("Exception when calling TopologyGroupsApi->createGroup: %s\n" % e)
    -
    -
    extern crate GeoQueryApi;
    +                            
    +
    extern crate TopologyGroupsApi;
     
     pub fn main() {
         let accept = application/json; // String
         let contentType = application/json; // String
    -    let queryMessage = ; // QueryMessage
    -    let offset = 56; // Integer
    -    let limit = 56; // Integer
    +    let group = ; // Group
     
    -    let mut context = GeoQueryApi::Context::default();
    -    let result = client.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit, &context).wait();
    +    let mut context = TopologyGroupsApi::Context::default();
    +    let result = client.createGroup(accept, contentType, group, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -15418,7 +14435,7 @@ pub fn main() {
     
     
     
    -    
    +
    @@ -15438,7 +14455,7 @@ pub fn main() { -
    +
    @@ -15462,7 +14479,7 @@ pub fn main() { Name Description - queryMessage * + group *

    -
    +
    -
    Query parameters
    - - - - - - - - - - - - - -
    NameDescription
    offset - - -
    -
    -
    - - Integer - - -
    -Pagination offset. -
    -
    -
    -
    -
    limit - - -
    -
    -
    - - Integer - - -
    -Result limiter. -
    -
    -
    -
    -

    Responses

    -

    -

    +

    +

    -

    -
    -
    -

    Schemas

    -
    -
    +
    +
    -

    createSchema

    -

    Create a new schema.

    +

    deleteGroup

    +

    Delete a group with specified id.

    -

    Create a new schema.

    +

    Delete a group with specified id.


    -
    /schemas
    +
    /groups/{groupId}

    Usage and SDK Samples

    -
    -
    curl -X POST \
    +                          
    +
    curl -X DELETE \
      -H "Accept: application/problem+json" \
    - -H "Content-Type: multipart/form-data" \
    - "https://localhost/topology-inventory/v1alpha11/schemas"
    + "https://localhost/topology-inventory/v1alpha11/groups/{groupId}"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.SchemasApi;
    +import org.openapitools.client.api.TopologyGroupsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String contentType = application/json; // String | 
    -        File file = BINARY_DATA_HERE; // File | multipartFile
    +        String groupId = groupId_example; // String | 
     
             try {
    -            apiInstance.createSchema(accept, contentType, file);
    +            apiInstance.deleteGroup(accept, groupId);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#createSchema");
    +            System.err.println("Exception when calling TopologyGroupsApi#deleteGroup");
                 e.printStackTrace();
             }
         }
    @@ -16121,61 +15089,57 @@ public class SchemasApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String contentType = new String(); // String | 
    -final File file = new File(); // File | multipartFile
    +final String groupId = new String(); // String | 
     
     try {
    -    final result = await api_instance.createSchema(accept, contentType, file);
    +    final result = await api_instance.deleteGroup(accept, groupId);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->createSchema: $e\n');
    +    print('Exception when calling DefaultApi->deleteGroup: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.SchemasApi;
    +                          
    +
    import org.openapitools.client.api.TopologyGroupsApi;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String contentType = application/json; // String | 
    -        File file = BINARY_DATA_HERE; // File | multipartFile
    +        String groupId = groupId_example; // String | 
     
             try {
    -            apiInstance.createSchema(accept, contentType, file);
    +            apiInstance.deleteGroup(accept, groupId);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#createSchema");
    +            System.err.println("Exception when calling TopologyGroupsApi#deleteGroup");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -SchemasApi *apiInstance = [[SchemasApi alloc] init];
    +TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *contentType = application/json; //  (default to application/json)
    -File *file = BINARY_DATA_HERE; // multipartFile (default to null)
    +String *groupId = groupId_example; //  (default to null)
     
    -// Create a new schema.
    -[apiInstance createSchemaWith:accept
    -    contentType:contentType
    -    file:file
    +// Delete a group with specified id.
    +[apiInstance deleteGroupWith:accept
    +    groupId:groupId
                   completionHandler: ^(NSError* error) {
         if (error) {
             NSLog(@"Error: %@", error);
    @@ -16184,14 +15148,13 @@ File *file = BINARY_DATA_HERE; // multipartFile (default to null)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.SchemasApi()
    +var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
     var accept = application/json; // {String} 
    -var contentType = application/json; // {String} 
    -var file = BINARY_DATA_HERE; // {File} multipartFile
    +var groupId = groupId_example; // {String} 
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -16200,14 +15163,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully.');
       }
     };
    -api.createSchema(accept, contentType, file, callback);
    +api.deleteGroup(accept, groupId, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -16216,22 +15179,21 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class createSchemaExample
    +    public class deleteGroupExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new SchemasApi();
    +            var apiInstance = new TopologyGroupsApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var contentType = application/json;  // String |  (default to application/json)
    -            var file = BINARY_DATA_HERE;  // File | multipartFile (default to null)
    +            var groupId = groupId_example;  // String |  (default to null)
     
                 try {
    -                // Create a new schema.
    -                apiInstance.createSchema(accept, contentType, file);
    +                // Delete a group with specified id.
    +                apiInstance.deleteGroup(accept, groupId);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling SchemasApi.createSchema: " + e.Message );
    +                Debug.Print("Exception when calling TopologyGroupsApi.deleteGroup: " + e.Message );
                 }
             }
         }
    @@ -16239,44 +15201,42 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\SchemasApi();
    +$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
     $accept = application/json; // String | 
    -$contentType = application/json; // String | 
    -$file = BINARY_DATA_HERE; // File | multipartFile
    +$groupId = groupId_example; // String | 
     
     try {
    -    $api_instance->createSchema($accept, $contentType, $file);
    +    $api_instance->deleteGroup($accept, $groupId);
     } catch (Exception $e) {
    -    echo 'Exception when calling SchemasApi->createSchema: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling TopologyGroupsApi->deleteGroup: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::SchemasApi;
    +use WWW::OPenAPIClient::TopologyGroupsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
    +my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
     my $accept = application/json; # String | 
    -my $contentType = application/json; # String | 
    -my $file = BINARY_DATA_HERE; # File | multipartFile
    +my $groupId = groupId_example; # String | 
     
     eval {
    -    $api_instance->createSchema(accept => $accept, contentType => $contentType, file => $file);
    +    $api_instance->deleteGroup(accept => $accept, groupId => $groupId);
     };
     if ($@) {
    -    warn "Exception when calling SchemasApi->createSchema: $@\n";
    +    warn "Exception when calling TopologyGroupsApi->deleteGroup: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -16284,28 +15244,26 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.SchemasApi()
    +api_instance = openapi_client.TopologyGroupsApi()
     accept = application/json # String |  (default to application/json)
    -contentType = application/json # String |  (default to application/json)
    -file = BINARY_DATA_HERE # File | multipartFile (default to null)
    +groupId = groupId_example # String |  (default to null)
     
     try:
    -    # Create a new schema.
    -    api_instance.create_schema(accept, contentType, file)
    +    # Delete a group with specified id.
    +    api_instance.delete_group(accept, groupId)
     except ApiException as e:
    -    print("Exception when calling SchemasApi->createSchema: %s\n" % e)
    + print("Exception when calling TopologyGroupsApi->deleteGroup: %s\n" % e)
    -
    -
    extern crate SchemasApi;
    +                            
    +
    extern crate TopologyGroupsApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let contentType = application/json; // String
    -    let file = BINARY_DATA_HERE; // File
    +    let groupId = groupId_example; // String
     
    -    let mut context = SchemasApi::Context::default();
    -    let result = client.createSchema(accept, contentType, file, &context).wait();
    +    let mut context = TopologyGroupsApi::Context::default();
    +    let result = client.deleteGroup(accept, groupId, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -16313,45 +15271,24 @@ pub fn main() {
                                 
    -

    Scopes

    - - -
    - -

    Parameters

    - - -
    Header parameters
    - - - - - - - - - - +

    Scopes

    +
    NameDescription
    Accept* - - -
    -
    -
    - - String - - -
    -
    - Required -
    -
    -
    -
    Content-Type*
    + +
    + +

    Parameters

    + +
    Path parameters
    + + + + + +
    NameDescription
    groupId* -
    +
    @@ -16369,30 +15306,23 @@ pub fn main() {
    - -
    Form parameters
    +
    Header parameters
    - +
    Name Description
    file*
    Accept* -
    +
    - File + String - - (binary) - -
    -multipartFile -
    Required @@ -16405,34 +15335,37 @@ multipartFile
    + +

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    deleteSchema

    -

    Delete a schema.

    +

    getAllGroups

    +

    Get all groups.

    -

    Delete a schema.

    +

    Get all groups.


    -
    /schemas/{schemaName}
    +
    /groups

    Usage and SDK Samples

    -
    -
    curl -X DELETE \
    - -H "Accept: application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/schemas/{schemaName}"
    +                          
    +
    curl -X GET \
    + -H "Accept: application/json,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/groups?offset=56&limit=56"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.SchemasApi;
    +import org.openapitools.client.api.TopologyGroupsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String schemaName = schemaName_example; // String | 
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            apiInstance.deleteSchema(accept, schemaName);
    +            Groups result = apiInstance.getAllGroups(accept, offset, limit);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#deleteSchema");
    +            System.err.println("Exception when calling TopologyGroupsApi#getAllGroups");
                 e.printStackTrace();
             }
         }
    @@ -16945,58 +15880,66 @@ public class SchemasApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String schemaName = new String(); // String | 
    +final Integer offset = new Integer(); // Integer | Pagination offset.
    +final Integer limit = new Integer(); // Integer | Result limiter.
     
     try {
    -    final result = await api_instance.deleteSchema(accept, schemaName);
    +    final result = await api_instance.getAllGroups(accept, offset, limit);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->deleteSchema: $e\n');
    +    print('Exception when calling DefaultApi->getAllGroups: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.SchemasApi;
    +                          
    +
    import org.openapitools.client.api.TopologyGroupsApi;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String schemaName = schemaName_example; // String | 
    +        Integer offset = 56; // Integer | Pagination offset.
    +        Integer limit = 56; // Integer | Result limiter.
     
             try {
    -            apiInstance.deleteSchema(accept, schemaName);
    +            Groups result = apiInstance.getAllGroups(accept, offset, limit);
    +            System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#deleteSchema");
    +            System.err.println("Exception when calling TopologyGroupsApi#getAllGroups");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -SchemasApi *apiInstance = [[SchemasApi alloc] init];
    +TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *schemaName = schemaName_example; //  (default to o-ran-smo-teiv-ran)
    +Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    +Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -// Delete a schema.
    -[apiInstance deleteSchemaWith:accept
    -    schemaName:schemaName
    -              completionHandler: ^(NSError* error) {
    +// Get all groups.
    +[apiInstance getAllGroupsWith:accept
    +    offset:offset
    +    limit:limit
    +              completionHandler: ^(Groups output, NSError* error) {
    +    if (output) {
    +        NSLog(@"%@", output);
    +    }
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -17004,29 +15947,32 @@ String *schemaName = schemaName_example; //  (default to o-ran-smo-teiv-ran)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.SchemasApi()
    +var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
     var accept = application/json; // {String} 
    -var schemaName = schemaName_example; // {String} 
    +var opts = {
    +  'offset': 56, // {Integer} Pagination offset.
    +  'limit': 56 // {Integer} Result limiter.
    +};
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully.');
    +    console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.deleteSchema(accept, schemaName, callback);
    +api.getAllGroups(accept, opts, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -17035,21 +15981,23 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class deleteSchemaExample
    +    public class getAllGroupsExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new SchemasApi();
    +            var apiInstance = new TopologyGroupsApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var schemaName = schemaName_example;  // String |  (default to o-ran-smo-teiv-ran)
    +            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    +            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
     
                 try {
    -                // Delete a schema.
    -                apiInstance.deleteSchema(accept, schemaName);
    +                // Get all groups.
    +                Groups result = apiInstance.getAllGroups(accept, offset, limit);
    +                Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling SchemasApi.deleteSchema: " + e.Message );
    +                Debug.Print("Exception when calling TopologyGroupsApi.getAllGroups: " + e.Message );
                 }
             }
         }
    @@ -17057,42 +16005,46 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\SchemasApi();
    +$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
     $accept = application/json; // String | 
    -$schemaName = schemaName_example; // String | 
    +$offset = 56; // Integer | Pagination offset.
    +$limit = 56; // Integer | Result limiter.
     
     try {
    -    $api_instance->deleteSchema($accept, $schemaName);
    +    $result = $api_instance->getAllGroups($accept, $offset, $limit);
    +    print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling SchemasApi->deleteSchema: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling TopologyGroupsApi->getAllGroups: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::SchemasApi;
    +use WWW::OPenAPIClient::TopologyGroupsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
    +my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
     my $accept = application/json; # String | 
    -my $schemaName = schemaName_example; # String | 
    +my $offset = 56; # Integer | Pagination offset.
    +my $limit = 56; # Integer | Result limiter.
     
     eval {
    -    $api_instance->deleteSchema(accept => $accept, schemaName => $schemaName);
    +    my $result = $api_instance->getAllGroups(accept => $accept, offset => $offset, limit => $limit);
    +    print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling SchemasApi->deleteSchema: $@\n";
    +    warn "Exception when calling TopologyGroupsApi->getAllGroups: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -17100,26 +16052,29 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.SchemasApi()
    +api_instance = openapi_client.TopologyGroupsApi()
     accept = application/json # String |  (default to application/json)
    -schemaName = schemaName_example # String |  (default to o-ran-smo-teiv-ran)
    +offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    +limit = 56 # Integer | Result limiter. (optional) (default to 500)
     
     try:
    -    # Delete a schema.
    -    api_instance.delete_schema(accept, schemaName)
    +    # Get all groups.
    +    api_response = api_instance.get_all_groups(accept, offset=offset, limit=limit)
    +    pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling SchemasApi->deleteSchema: %s\n" % e)
    + print("Exception when calling TopologyGroupsApi->getAllGroups: %s\n" % e)
    -
    -
    extern crate SchemasApi;
    +                            
    +
    extern crate TopologyGroupsApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let schemaName = schemaName_example; // String
    -
    -    let mut context = SchemasApi::Context::default();
    -    let result = client.deleteSchema(accept, schemaName, &context).wait();
    +    let offset = 56; // Integer
    +    let limit = 56; // Integer
    +
    +    let mut context = TopologyGroupsApi::Context::default();
    +    let result = client.getAllGroups(accept, offset, limit, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -17134,17 +16089,18 @@ pub fn main() {
     
                               

    Parameters

    -
    Path parameters
    + +
    Header parameters
    - - - - - + + + + +
    NameDescription
    schemaName*
    NameDescription
    Accept* -
    +
    @@ -17162,61 +16118,161 @@ pub fn main() {
    -
    Header parameters
    + + +
    Query parameters
    - + -
    Name Description
    Accept*
    offset -
    +
    - String + Integer +
    +Pagination offset. +
    -
    - Required -
    + limit + + +
    +
    +
    + + Integer + +
    +Result limiter. +
    +
    +
    +
    + + +

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getSchemaByName

    -

    Get the model schema.

    +

    getGroup

    +

    Get a group with specified id.

    -

    Get the model schema by name.

    +

    Get a Group with specified id.


    -
    /schemas/{schemaName}/content
    +
    /groups/{groupId}

    Usage and SDK Samples

    -
    +
    curl -X GET \
    - -H "Accept: text/plain,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/schemas/{schemaName}/content"
    + -H "Accept: application/json,application/problem+json" \
    + "https://localhost/topology-inventory/v1alpha11/groups/{groupId}"
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.SchemasApi;
    +import org.openapitools.client.api.TopologyGroupsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String schemaName = schemaName_example; // String | 
    +        String groupId = groupId_example; // String | 
     
             try {
    -            'String' result = apiInstance.getSchemaByName(accept, schemaName);
    +            GroupResponse result = apiInstance.getGroup(accept, groupId);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#getSchemaByName");
    +            System.err.println("Exception when calling TopologyGroupsApi#getGroup");
                 e.printStackTrace();
             }
         }
    @@ -17654,59 +16710,59 @@ public class SchemasApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String schemaName = new String(); // String | 
    +final String groupId = new String(); // String | 
     
     try {
    -    final result = await api_instance.getSchemaByName(accept, schemaName);
    +    final result = await api_instance.getGroup(accept, groupId);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getSchemaByName: $e\n');
    +    print('Exception when calling DefaultApi->getGroup: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.SchemasApi;
    +                          
    +
    import org.openapitools.client.api.TopologyGroupsApi;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String schemaName = schemaName_example; // String | 
    +        String groupId = groupId_example; // String | 
     
             try {
    -            'String' result = apiInstance.getSchemaByName(accept, schemaName);
    +            GroupResponse result = apiInstance.getGroup(accept, groupId);
                 System.out.println(result);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#getSchemaByName");
    +            System.err.println("Exception when calling TopologyGroupsApi#getGroup");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -SchemasApi *apiInstance = [[SchemasApi alloc] init];
    +TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *schemaName = schemaName_example; //  (default to o-ran-smo-teiv-ran)
    +String *groupId = groupId_example; //  (default to null)
     
    -// Get the model schema.
    -[apiInstance getSchemaByNameWith:accept
    -    schemaName:schemaName
    -              completionHandler: ^('String' output, NSError* error) {
    +// Get a group with specified id.
    +[apiInstance getGroupWith:accept
    +    groupId:groupId
    +              completionHandler: ^(GroupResponse output, NSError* error) {
         if (output) {
             NSLog(@"%@", output);
         }
    @@ -17717,13 +16773,13 @@ String *schemaName = schemaName_example; //  (default to o-ran-smo-teiv-ran)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.SchemasApi()
    +var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
     var accept = application/json; // {String} 
    -var schemaName = schemaName_example; // {String} 
    +var groupId = groupId_example; // {String} 
     
     var callback = function(error, data, response) {
       if (error) {
    @@ -17732,14 +16788,14 @@ var callback = function(error, data, response) {
         console.log('API called successfully. Returned data: ' + data);
       }
     };
    -api.getSchemaByName(accept, schemaName, callback);
    +api.getGroup(accept, groupId, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -17748,22 +16804,22 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getSchemaByNameExample
    +    public class getGroupExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new SchemasApi();
    +            var apiInstance = new TopologyGroupsApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var schemaName = schemaName_example;  // String |  (default to o-ran-smo-teiv-ran)
    +            var groupId = groupId_example;  // String |  (default to null)
     
                 try {
    -                // Get the model schema.
    -                'String' result = apiInstance.getSchemaByName(accept, schemaName);
    +                // Get a group with specified id.
    +                GroupResponse result = apiInstance.getGroup(accept, groupId);
                     Debug.WriteLine(result);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling SchemasApi.getSchemaByName: " + e.Message );
    +                Debug.Print("Exception when calling TopologyGroupsApi.getGroup: " + e.Message );
                 }
             }
         }
    @@ -17771,44 +16827,44 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\SchemasApi();
    +$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
     $accept = application/json; // String | 
    -$schemaName = schemaName_example; // String | 
    +$groupId = groupId_example; // String | 
     
     try {
    -    $result = $api_instance->getSchemaByName($accept, $schemaName);
    +    $result = $api_instance->getGroup($accept, $groupId);
         print_r($result);
     } catch (Exception $e) {
    -    echo 'Exception when calling SchemasApi->getSchemaByName: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling TopologyGroupsApi->getGroup: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::SchemasApi;
    +use WWW::OPenAPIClient::TopologyGroupsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
    +my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
     my $accept = application/json; # String | 
    -my $schemaName = schemaName_example; # String | 
    +my $groupId = groupId_example; # String | 
     
     eval {
    -    my $result = $api_instance->getSchemaByName(accept => $accept, schemaName => $schemaName);
    +    my $result = $api_instance->getGroup(accept => $accept, groupId => $groupId);
         print Dumper($result);
     };
     if ($@) {
    -    warn "Exception when calling SchemasApi->getSchemaByName: $@\n";
    +    warn "Exception when calling TopologyGroupsApi->getGroup: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -17816,27 +16872,27 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.SchemasApi()
    +api_instance = openapi_client.TopologyGroupsApi()
     accept = application/json # String |  (default to application/json)
    -schemaName = schemaName_example # String |  (default to o-ran-smo-teiv-ran)
    +groupId = groupId_example # String |  (default to null)
     
     try:
    -    # Get the model schema.
    -    api_response = api_instance.get_schema_by_name(accept, schemaName)
    +    # Get a group with specified id.
    +    api_response = api_instance.get_group(accept, groupId)
         pprint(api_response)
     except ApiException as e:
    -    print("Exception when calling SchemasApi->getSchemaByName: %s\n" % e)
    + print("Exception when calling TopologyGroupsApi->getGroup: %s\n" % e)
    -
    -
    extern crate SchemasApi;
    +                            
    +
    extern crate TopologyGroupsApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let schemaName = schemaName_example; // String
    +    let groupId = groupId_example; // String
     
    -    let mut context = SchemasApi::Context::default();
    -    let result = client.getSchemaByName(accept, schemaName, &context).wait();
    +    let mut context = TopologyGroupsApi::Context::default();
    +    let result = client.getGroup(accept, groupId, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -17857,11 +16913,11 @@ pub fn main() {
                                       Name
                                       Description
                                     
    -                                  schemaName*
    +                                  groupId*
     
     
     
    -    
    +
    @@ -17889,7 +16945,7 @@ pub fn main() { -
    +
    @@ -17911,23 +16967,23 @@ pub fn main() {

    Responses

    -

    -

    +

    +

    -

    -
    -
    +
    +
    -

    getSchemas

    -

    Get a list of all schemas.

    +

    updateGroup

    +

    Update a Group.

    -

    Get a list of all schemas.

    +

    Update a Group.


    -
    /schemas
    +
    /groups/{groupId}

    Usage and SDK Samples

    -
    -
    curl -X GET \
    - -H "Accept: application/json,application/problem+json" \
    - "https://localhost/topology-inventory/v1alpha11/schemas?domain=ran&offset=56&limit=56"
    +                          
    +
    curl -X PUT \
    + -H "Accept: application/problem+json" \
    + -H "Content-Type: application/json" \
    + "https://localhost/topology-inventory/v1alpha11/groups/{groupId}" \
    + -d '{
    +  "groupName" : "groupName",
    +  "criteria" : {
    +    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +  }
    +}'
     
    -
    +
    import org.openapitools.client.*;
     import org.openapitools.client.auth.*;
     import org.openapitools.client.model.*;
    -import org.openapitools.client.api.SchemasApi;
    +import org.openapitools.client.api.TopologyGroupsApi;
     
     import java.io.File;
     import java.util.*;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
     
             // Create an instance of the API class
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String domain = ran; // String | 
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        String contentType = application/json; // String | 
    +        String groupId = groupId_example; // String | 
    +        Group group = ; // Group | 
     
             try {
    -            SchemaList result = apiInstance.getSchemas(accept, domain, offset, limit);
    -            System.out.println(result);
    +            apiInstance.updateGroup(accept, contentType, groupId, group);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#getSchemas");
    +            System.err.println("Exception when calling TopologyGroupsApi#updateGroup");
                 e.printStackTrace();
             }
         }
    @@ -18470,70 +17532,66 @@ public class SchemasApiExample {
     
    -
    +
    import 'package:openapi/api.dart';
     
     final api_instance = DefaultApi();
     
     final String accept = new String(); // String | 
    -final String domain = new String(); // String | 
    -final Integer offset = new Integer(); // Integer | Pagination offset.
    -final Integer limit = new Integer(); // Integer | Result limiter.
    +final String contentType = new String(); // String | 
    +final String groupId = new String(); // String | 
    +final Group group = new Group(); // Group | 
     
     try {
    -    final result = await api_instance.getSchemas(accept, domain, offset, limit);
    +    final result = await api_instance.updateGroup(accept, contentType, groupId, group);
         print(result);
     } catch (e) {
    -    print('Exception when calling DefaultApi->getSchemas: $e\n');
    +    print('Exception when calling DefaultApi->updateGroup: $e\n');
     }
     
     
    -
    -
    import org.openapitools.client.api.SchemasApi;
    +                          
    +
    import org.openapitools.client.api.TopologyGroupsApi;
     
    -public class SchemasApiExample {
    +public class TopologyGroupsApiExample {
         public static void main(String[] args) {
    -        SchemasApi apiInstance = new SchemasApi();
    +        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
             String accept = application/json; // String | 
    -        String domain = ran; // String | 
    -        Integer offset = 56; // Integer | Pagination offset.
    -        Integer limit = 56; // Integer | Result limiter.
    +        String contentType = application/json; // String | 
    +        String groupId = groupId_example; // String | 
    +        Group group = ; // Group | 
     
             try {
    -            SchemaList result = apiInstance.getSchemas(accept, domain, offset, limit);
    -            System.out.println(result);
    +            apiInstance.updateGroup(accept, contentType, groupId, group);
             } catch (ApiException e) {
    -            System.err.println("Exception when calling SchemasApi#getSchemas");
    +            System.err.println("Exception when calling TopologyGroupsApi#updateGroup");
                 e.printStackTrace();
             }
         }
     }
    -
    +
    
     
     // Create an instance of the API class
    -SchemasApi *apiInstance = [[SchemasApi alloc] init];
    +TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
     String *accept = application/json; //  (default to application/json)
    -String *domain = ran; //  (optional) (default to null)
    -Integer *offset = 56; // Pagination offset. (optional) (default to 0)
    -Integer *limit = 56; // Result limiter. (optional) (default to 500)
    +String *contentType = application/json; //  (default to application/json)
    +String *groupId = groupId_example; //  (default to null)
    +Group *group = ; // 
     
    -// Get a list of all schemas.
    -[apiInstance getSchemasWith:accept
    -    domain:domain
    -    offset:offset
    -    limit:limit
    -              completionHandler: ^(SchemaList output, NSError* error) {
    -    if (output) {
    -        NSLog(@"%@", output);
    -    }
    +// Update a Group.
    +[apiInstance updateGroupWith:accept
    +    contentType:contentType
    +    groupId:groupId
    +    group:group
    +              completionHandler: ^(NSError* error) {
         if (error) {
             NSLog(@"Error: %@", error);
         }
    @@ -18541,33 +17599,31 @@ Integer *limit = 56; // Result limiter. (optional) (default to 500)
     
    -
    -
    var TopologyAndInventoryApi = require('topology_and_inventory_api');
    +                            
    +
    var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
     
     // Create an instance of the API class
    -var api = new TopologyAndInventoryApi.SchemasApi()
    +var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
     var accept = application/json; // {String} 
    -var opts = {
    -  'domain': ran, // {String} 
    -  'offset': 56, // {Integer} Pagination offset.
    -  'limit': 56 // {Integer} Result limiter.
    -};
    +var contentType = application/json; // {String} 
    +var groupId = groupId_example; // {String} 
    +var group = ; // {Group} 
     
     var callback = function(error, data, response) {
       if (error) {
         console.error(error);
       } else {
    -    console.log('API called successfully. Returned data: ' + data);
    +    console.log('API called successfully.');
       }
     };
    -api.getSchemas(accept, opts, callback);
    +api.updateGroup(accept, contentType, groupId, group, callback);
     
    - -
    +
    using System;
     using System.Diagnostics;
     using Org.OpenAPITools.Api;
    @@ -18576,24 +17632,23 @@ using Org.OpenAPITools.Model;
     
     namespace Example
     {
    -    public class getSchemasExample
    +    public class updateGroupExample
         {
             public void main()
             {
     
                 // Create an instance of the API class
    -            var apiInstance = new SchemasApi();
    +            var apiInstance = new TopologyGroupsApi();
                 var accept = application/json;  // String |  (default to application/json)
    -            var domain = ran;  // String |  (optional)  (default to null)
    -            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
    -            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
    +            var contentType = application/json;  // String |  (default to application/json)
    +            var groupId = groupId_example;  // String |  (default to null)
    +            var group = new Group(); // Group | 
     
                 try {
    -                // Get a list of all schemas.
    -                SchemaList result = apiInstance.getSchemas(accept, domain, offset, limit);
    -                Debug.WriteLine(result);
    +                // Update a Group.
    +                apiInstance.updateGroup(accept, contentType, groupId, group);
                 } catch (Exception e) {
    -                Debug.Print("Exception when calling SchemasApi.getSchemas: " + e.Message );
    +                Debug.Print("Exception when calling TopologyGroupsApi.updateGroup: " + e.Message );
                 }
             }
         }
    @@ -18601,48 +17656,46 @@ namespace Example
     
    -
    +
    <?php
     require_once(__DIR__ . '/vendor/autoload.php');
     
     // Create an instance of the API class
    -$api_instance = new OpenAPITools\Client\Api\SchemasApi();
    +$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
     $accept = application/json; // String | 
    -$domain = ran; // String | 
    -$offset = 56; // Integer | Pagination offset.
    -$limit = 56; // Integer | Result limiter.
    +$contentType = application/json; // String | 
    +$groupId = groupId_example; // String | 
    +$group = ; // Group | 
     
     try {
    -    $result = $api_instance->getSchemas($accept, $domain, $offset, $limit);
    -    print_r($result);
    +    $api_instance->updateGroup($accept, $contentType, $groupId, $group);
     } catch (Exception $e) {
    -    echo 'Exception when calling SchemasApi->getSchemas: ', $e->getMessage(), PHP_EOL;
    +    echo 'Exception when calling TopologyGroupsApi->updateGroup: ', $e->getMessage(), PHP_EOL;
     }
     ?>
    -
    +
    use Data::Dumper;
     use WWW::OPenAPIClient::Configuration;
    -use WWW::OPenAPIClient::SchemasApi;
    +use WWW::OPenAPIClient::TopologyGroupsApi;
     
     # Create an instance of the API class
    -my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
    +my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
     my $accept = application/json; # String | 
    -my $domain = ran; # String | 
    -my $offset = 56; # Integer | Pagination offset.
    -my $limit = 56; # Integer | Result limiter.
    +my $contentType = application/json; # String | 
    +my $groupId = groupId_example; # String | 
    +my $group = WWW::OPenAPIClient::Object::Group->new(); # Group | 
     
     eval {
    -    my $result = $api_instance->getSchemas(accept => $accept, domain => $domain, offset => $offset, limit => $limit);
    -    print Dumper($result);
    +    $api_instance->updateGroup(accept => $accept, contentType => $contentType, groupId => $groupId, group => $group);
     };
     if ($@) {
    -    warn "Exception when calling SchemasApi->getSchemas: $@\n";
    +    warn "Exception when calling TopologyGroupsApi->updateGroup: $@\n";
     }
    -
    +
    from __future__ import print_statement
     import time
     import openapi_client
    @@ -18650,31 +17703,30 @@ from openapi_client.rest import ApiException
     from pprint import pprint
     
     # Create an instance of the API class
    -api_instance = openapi_client.SchemasApi()
    +api_instance = openapi_client.TopologyGroupsApi()
     accept = application/json # String |  (default to application/json)
    -domain = ran # String |  (optional) (default to null)
    -offset = 56 # Integer | Pagination offset. (optional) (default to 0)
    -limit = 56 # Integer | Result limiter. (optional) (default to 500)
    +contentType = application/json # String |  (default to application/json)
    +groupId = groupId_example # String |  (default to null)
    +group =  # Group | 
     
     try:
    -    # Get a list of all schemas.
    -    api_response = api_instance.get_schemas(accept, domain=domain, offset=offset, limit=limit)
    -    pprint(api_response)
    +    # Update a Group.
    +    api_instance.update_group(accept, contentType, groupId, group)
     except ApiException as e:
    -    print("Exception when calling SchemasApi->getSchemas: %s\n" % e)
    + print("Exception when calling TopologyGroupsApi->updateGroup: %s\n" % e)
    -
    -
    extern crate SchemasApi;
    +                            
    +
    extern crate TopologyGroupsApi;
     
     pub fn main() {
         let accept = application/json; // String
    -    let domain = ran; // String
    -    let offset = 56; // Integer
    -    let limit = 56; // Integer
    +    let contentType = application/json; // String
    +    let groupId = groupId_example; // String
    +    let group = ; // Group
     
    -    let mut context = SchemasApi::Context::default();
    -    let result = client.getSchemas(accept, domain, offset, limit, &context).wait();
    +    let mut context = TopologyGroupsApi::Context::default();
    +    let result = client.updateGroup(accept, contentType, groupId, group, &context).wait();
     
         println!("{:?}", result);
     }
    @@ -18689,18 +17741,17 @@ pub fn main() {
     
                               

    Parameters

    - -
    Header parameters
    +
    Path parameters
    - - - - - + + + + +
    NameDescription
    Accept*
    NameDescription
    groupId* -
    +
    @@ -18718,19 +17769,17 @@ pub fn main() {
    - - -
    Query parameters
    +
    Header parameters
    - + - + - -
    Name Description
    domain
    Accept* -
    +
    @@ -18738,98 +17787,124 @@ pub fn main() {
    +
    + Required +
    offset
    Content-Type* -
    +
    - Integer + String -
    -Pagination offset. -
    +
    + Required +
    limit +
    +
    Body parameters
    + + + + + + +
    NameDescription
    group * +

    + +
    + +

    Responses

    -

    -

    +

    +

    -
    diff --git a/docs/offeredapis/index.html b/docs/offeredapis/index.html index 831b217..7d91429 100644 --- a/docs/offeredapis/index.html +++ b/docs/offeredapis/index.html @@ -1,7 +1,7 @@ - Topology and Inventory API + Topology Exposure and Inventory API -

    Topology and Inventory API

    -

    Topology and Inventory data is the information that represents entities in a telecommunications network and the relationships between them that provide insight into a particular aspect of the network of importance to specific use cases. Topology and Inventory data can be derived from inventory, configuration, or other data.

    -

    Topology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data.

    -

    Entities are enabling the modelling and storage of complex network infrastructure and relationships.

    -

    Relationships are a uni-directional connection between two entities, one of which is the originating side (A-side) and the other is the terminating side (B-side). The order of the sides matters since it defines the relationship itself which must be unique

    -

    Topology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests.

    +

    Topology Exposure and Inventory API

    +

    Topology Exposure and Inventory data is the information that represents entities +in a telecommunications network and the relationships between them that +provide insight into a particular aspect of the network of importance to +specific use cases. Topology and Inventory data can be derived from +inventory, configuration, or other data.

    +

    Topology Exposure and Inventory supports several topology domains. A domain is a +grouping of topology and inventory entities that handles topology and +inventory data.

    +

    Entities are enabling the modelling and storage of complex network +infrastructure and relationships.

    +

    A relationship is a bi-directional connection between two entities, one +of which is the originating side (A-side) and the other is the +terminating side (B-side). The order of the sides matters since it +defines the relationship itself which must be unique.

    +

    Classifier (also known as tag or label) permits the association of a +well defined user specified string with an entity or relationship.

    +

    Decorators are user-defined attributes (key-value pairs) which can +be applied to topology entities and relationships.

    +

    Topology Exposure and Inventory API provides the capabilities to fetch topology +data. Using the filtering options, it is possible to define more specific +query requests.

    Querying simple entities

    -

    EntityType is used as the root of the queries (from here referred as RootObject). Every other object, either targetFilter or scopeFilter, has to relate to the RootObject. The queries are constructed starting from the RootObject and all other objects are joined to it. If there is no connection between the RootObject and the other object(s), the query will not get constructed. The RootObject still can be retrieved and filtered using the /attributes.

    -

    | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | -|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------| -| To return the ids for all instances of the entityType used in the query. |  GNBDUFunction | | | All ids of every GNBDUFunction | -| To return all attributes of every instance of the entityType used in the query. |  GNBDUFunction |  /attributes | | All GNBDUFunctions with every attribute | -| To return every instance of the entityType 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. |  GNBDUFunction |  /attributes(gNBId)
       OR
    /attributes/gNBId | | All FDNs of every GNBDUFunction | -| To return every instance of the entityType used in the query, but only the attributes that were defined in the targetFilter parameter.
    Case 1: The attributes must be separated by a comma "," in case of using parenthesis "()".
    Case 2: The attributes must be separated by a semicolon ";" in case of using slash "/".
    Note: The attributes must be valid targetFilter of the object. |  GNBDUFunction |  /attributes(gNBId, gNBIdLength)
       OR
    /attributes/gNBId; /attributes/gNBIdLength | | All Ids and FDNs of every GNBDUFunction | -| To return the ids for all instances of the entityType used in the query, that matches the given attribute in the scopeFilter parameter.
    Note: The attribute must be a valid field of the object. |  GNBDUFunction | | /attributes[contains (@fdn, "/SubNetwork=Ireland/")] | Unique set of ids of GNBDUFunctions, where fdn contains "SubNetwork=Ireland" | -| To return the ids for all instances of the entityType used in the query, that matches the given attributes in the scopeFilter parameter.
    Note: the entityType and the object in the scopeFilter parameter must match, and the attributes must be valid field or fields of the object. The attributes must be separated by a comma ",". |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | -| To return the ids for all instances of the entityType used in the query, that satisfies every condition in one of the tags in the scopeFilter parameter. A tag is a complete unit of scopeFilter parameter surrounded by square brackets.
    Note: The attributes must be valid field or fields of the object. |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111]
       OR
    /attributes[@gNBIdLength=3 and @gNBId=112] | Unique set of ids of GNBDUFunctions, where where the gNBIdLength equals 3 and the gNBId is either 111 or 112 |

    +

    The entityTypeName is used as the root of the queries (from here +referred to as RootObject). Every other object, either in targetFilter or +scopeFilter, has to relate to the RootObject. The queries are +constructed starting from the RootObject and all other objects are joined +to it. If there is no connection between the RootObject and the other +object(s), the query is not constructed. The RootObject still can be +retrieved and filtered using the /attributes.

    +

    | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | +|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| +| To return the ids for all instances of the entityTypeName used in the query. | RAN | GNBDUFunction | | | All ids of every GNBDUFunction | +| To return all attributes of every instance of the entityTypeName used in the query. | RAN | GNBDUFunction | /attributes | | All GNBDUFunctions with every attribute | +| To return every instance of the entityTypeName used in the query, but only the attribute that was defined in the targetFilter parameter.
    Note: The attribute must be a valid field of the object. | RAN | GNBDUFunction | /attributes(gNBId) | | All gNBIds of every GNBDUFunction | +| To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the targetFilter parameter.
    Note: The attributes must be separated by a comma "," when using parenthesis "()". | RAN | GNBDUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every GNBDUFunction | +| To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the scopeFilter parameter. | RAN | GNBDUFunction | | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where sourceIds contains SubNetwork=Ireland | +| To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the scopeFilter parameter.
    Note: The attributes must be separated by a AND or OR". | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | +| To return the ids for all instances of the entityTypeName used in the query, that satisfies one of the conditions in the scopeFilter parameter. A condition is a complete unit of scopeFilter parameter surrounded by square brackets.
    Note: Multiple conditions can be given in the scopeFilter separated by a semicolon ";" to represent AND, or a pipe symbol "|" to represent OR. | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3] | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 or the sourceIds contains an item with "SubNetwork=Ireland" |

    Querying connected entities

    -

    It is possible to get information about directly connected objects as well. If entityType is present in the targetFilter parameter, the query provides information about that entityType itself.

    -

    | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | -|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| -| To return the ids for all instances of the entityType in the targetFilter parameter, if they are directly related to the queried entityType. |  GNBDUFunction |  /NRCellDU | | Unique set of ids of NRCellDUs that relates to GNBDUFunctions directly with any relationship type | -| To return the ids for all instances of the entityTypes in the targetFilter parameter, if they are directly related to the entityType. |  GNBDUFunction |  /NRCellDU ;  /NRSectorCarrier | | Unique set of ids of NRCellDUs and NRSectorCarriers that relates to GNBDUFunctions directly with any relationship type | -| To return the ids for all instances of the queried entityType that has one or more direct relationships with the entityType specified in the scopeFilter parameter. |  GNBDUFunction | | /AntennaCapability | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability with any relationship type | -| To return the ids for all instances of the queried entityType that has one or more direct relationships with at least one of the entityTypes specified in the scopeFilter parameter. |  GNBDUFunction | | /AntennaCapability
       OR
    /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type |

    +

    The entityTypeName is used as the root of the queries.

    +

    | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | +|:-----------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| To return the ids for all instances of an entityTypeName related by an association. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement | All ENodeBFunction entities that are managed by any Managed Element. | +| To return the ids for all instances of an entityTypeName related by an association to another entity specified by its id. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All ENodeBFunction entities that are managed by by the Managed Element urn:3gpp:dn: ManagedElement=1. | +| To return the attributes for all instances of an entityTypeName related by one or more associations to other entities specified by their id. | REL_OAM_RAN | ENodeBFunction | /attributes | /attributes [@enbId=1] ; /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as 1, managed by the Managed Element urn:3gpp:dn: ManagedElement=1 or urn:3gpp:dn: ManagedElement=2, and provides EuTranCell urn:3gpp:dn: ManagedElement=1, EUtranCell=2. |

    +

    Querying entities for relationships

    +

    The entityTypeName is used as the root of the queries.

    +

    | Use case | domainName | entityTypeName | entityId | targetFilter | scopeFilter | Query result | +|:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| To return the relationships for a given entity specified by its id. | RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | | All relations for the GNBDUFunction with id urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1. | +| To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION | | All MANAGEDELEMENT _MANAGES _GNBDUFUNCTION relations for the GNBDUFunction with id urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1. | +| To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT _MANAGES _GNBDUFUNCTION relations for the GNBDUFunction with id urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 where the managed element is urn:3gpp:dn: ManagedElement=1. |

    +

    Querying on relationships

    +

    Here, the relationshipTypeName is used as the root of the queries.

    +

    | Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result | +|:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------| +| To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. | +| To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association managed-by-managedElement to ManagedElement urn:3gpp:dn: ManagedElement=1. |

    +

    Querying on classifiers and decorators

    +

    The domainName is used as the root of the queries.

    +

    | Use case | domainName | targetFilter | scopeFilter | Query result | +|:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------| +| Return all related entity IDs that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'gnbdu-function-model:Indoor'] | All the entity IDs that are classified with "gnbdu-function-model:Indoor" in RAN domain. | +| Return all related entity IDs that are partially matched for the given classifier with given domain name. | RAN | | /classifiers[contains(@item, 'Ind')] | All the entity IDs that are partially matched with "Ind" in RAN domain. | +| Return all related entity IDs that are exactly matched with the key-value pair that specified decorators with given domain name. | RAN | | /decorators[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata = 'Stockholm'" in RAN domain. | +| Return all related entity IDs that are exactly matched with key parameter where the value of the decorator is unknown with given domain name. | RAN | | /decorators[contains(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. |

    +

    The entityName is used as the root of the queries.

    +

    | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Return all related entity IDs and classifiers. | NRCellDU | | /classifiers | | All NRCellDU IDs and classifiers. | +| Return all related entity IDs and decorators. | NRCellDU | | /decorators | | All NRCellDU IDs and decorators. | +| Return all related entity IDs that are exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-function-model:Indoor". | +| Return all related entity IDs and classifiers that are partially matched for the given classifier. | NRCellDU | | /classifiers | /classifiers[contains(@item, 'Ind')] | All NRCellDU IDs and classifiers partially contains the text "Ind". | +| Return all related entity IDs and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'. | +| Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU | | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind". |

    +

    The relationshipTypeName is used as the root of the queries.

    +

    | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Return all related relationships IDs and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers. | +| Return all related relationships IDs and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators. | +| Return all related relationship IDs that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". | +| Return all related relationships IDs and classifiers that are partially matched for the given classifier. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | /classifiers[contains(@item, 'Ind')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind". | +| Return all related relationships IDs and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'. | +| Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind". |

    Contact Info: team@openapitools.org
    @@ -220,19 +280,11 @@ font-style: italic;

    Classifiers

    -

    Collections

    -

    Decorators

    EntitiesAndRelationships

    -

    GeoQuery

    -

    Schemas

    +

    TopologyGroups

    +

    Classifiers

    Up -
    put /classifiers
    +
    post /classifiers
    Update entities and/or relationships with classifier(s). (updateClassifier)
    -
    Update entities and/or relationships with classifier(s).
    +
    Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.

    Consumes

    @@ -341,13 +397,13 @@ font-style: italic; ErrorMessage

    -

    Collections

    -
    +

    Decorators

    +
    Up -
    post /collections
    -
    Create a collection. (createCollection)
    -
    Create a collection.
    +
    post /decorators
    +
    Update entities and/or relationships with decorator(s). (updateDecorator)
    +
    Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.

    Consumes

    @@ -358,7 +414,7 @@ font-style: italic;

    Request body

    -
    Collection Collection (required)
    +
    Decorator Decorator (required)
    Body Parameter
    @@ -377,23 +433,9 @@ font-style: italic; -

    Return type

    - -

    Example data

    -
    Content-Type: application/json
    -
    {
    -  "criteria" : {
    -    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    -  },
    -  "id" : "id",
    -  "collectionName" : "collectionName"
    -}

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -414,14 +456,13 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/json
    • application/problem+json

    Responses

    -

    201

    - Created - CollectionResponse +

    204

    + No Content +

    400

    Bad Request ErrorMessage @@ -439,19 +480,14 @@ font-style: italic; ErrorMessage

    -
    +

    EntitiesAndRelationships

    +
    Up -
    delete /collections/{collectionId}
    -
    Delete a collection with specified id. (deleteCollection)
    -
    Delete a collection with specified id.
    - -

    Path parameters

    -
    -
    collectionId (required)
    +
    get /domains
    +
    Get all the available topology domains. (getAllDomains)
    +
    Get all the available topology domains.
    -
    Path Parameter — default: null
    -
    @@ -463,14 +499,61 @@ font-style: italic;
    +

    Query parameters

    +
    +
    offset (optional)
    + +
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    + +
    Query Parameter — Result limiter. default: 500
    +
    +

    Return type

    +
    + Domains + +

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    +
    Content-Type: application/json
    +
    {
    +  "next" : {
    +    "href" : "href"
    +  },
    +  "last" : {
    +    "href" : "href"
    +  },
    +  "prev" : {
    +    "href" : "href"
    +  },
    +  "self" : {
    +    "href" : "href"
    +  },
    +  "totalCount" : 0,
    +  "items" : [ {
    +    "name" : "name",
    +    "entityTypes" : {
    +      "href" : "href"
    +    },
    +    "relationshipTypes" : {
    +      "href" : "href"
    +    }
    +  }, {
    +    "name" : "name",
    +    "entityTypes" : {
    +      "href" : "href"
    +    },
    +    "relationshipTypes" : {
    +      "href" : "href"
    +    }
    +  } ],
    +  "first" : {
    +    "href" : "href"
    +  }
    +}

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -488,13 +571,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      +
    • application/json
    • application/problem+json

    Responses

    -

    204

    - No Content - +

    200

    + OK + Domains

    400

    Bad Request ErrorMessage @@ -504,21 +588,28 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    404

    - Not Found - ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /collections
    -
    Get all collections. (getAllCollections)
    -
    Get all collections.
    +
    get /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships
    +
    Get all relationships for entity type name with specified id. Specified id represents the entity instance. (getAllRelationshipsForEntityId)
    +
    Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    + +

    Path parameters

    +
    +
    domainName (required)
    + +
    Path Parameter — domain name default: null
    entityTypeName (required)
    +
    Path Parameter — default: null
    entityId (required)
    + +
    Path Parameter — default: null
    +
    @@ -532,7 +623,11 @@ font-style: italic;

    Query parameters

    -
    offset (optional)
    +
    targetFilter (optional)
    + +
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    + +
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    @@ -542,7 +637,7 @@ font-style: italic;

    Return type

    @@ -564,19 +659,7 @@ font-style: italic; "href" : "href" }, "totalCount" : 0, - "items" : [ { - "criteria" : { - "resourceInstances" : [ "resourceInstances", "resourceInstances" ] - }, - "id" : "id", - "collectionName" : "collectionName" - }, { - "criteria" : { - "resourceInstances" : [ "resourceInstances", "resourceInstances" ] - }, - "id" : "id", - "collectionName" : "collectionName" - } ], + "items" : [ "{}", "{}" ], "first" : { "href" : "href" } @@ -593,6 +676,9 @@ font-style: italic;

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    +

    Example data

    +
    Content-Type: application/problem+json
    +
    Custom MIME type example not yet supported: application/problem+json

    Produces

    This API call produces the following media types according to the Accept request header; @@ -605,10 +691,7 @@ font-style: italic;

    Responses

    200

    OK - Collections -

    204

    - No Content - + RelationshipsResponseMessage

    400

    Bad Request ErrorMessage @@ -618,23 +701,26 @@ font-style: italic;

    403

    Forbidden ErrorMessage +

    404

    + Not Found + ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /collections/{collectionId}
    -
    Get a collection with specified id. (getCollection)
    -
    Get a collection with specified id.
    +
    get /domains/{domainName}/entities
    +
    Get entities by domain (getEntitiesByDomain)
    +
    Get topology entities by domain, using specified targetFilter as mandatory query parameter.

    Path parameters

    -
    collectionId (required)
    +
    domainName (required)
    -
    Path Parameter — default: null
    +
    Path Parameter — domain name default: null
    @@ -647,11 +733,23 @@ font-style: italic;
    +

    Query parameters

    +
    +
    targetFilter (optional)
    + +
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    + +
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    + +
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    + +
    Query Parameter — Result limiter. default: 500
    +

    Return type

    @@ -660,11 +758,23 @@ font-style: italic;

    Example data

    Content-Type: application/json
    {
    -  "criteria" : {
    -    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +  "next" : {
    +    "href" : "href"
    +  },
    +  "last" : {
    +    "href" : "href"
    +  },
    +  "prev" : {
    +    "href" : "href"
    +  },
    +  "self" : {
    +    "href" : "href"
       },
    -  "id" : "id",
    -  "collectionName" : "collectionName"
    +  "totalCount" : 0,
    +  "items" : [ "{}", "{}" ],
    +  "first" : {
    +    "href" : "href"
    +  }
     }

    Example data

    Content-Type: application/problem+json
    @@ -678,9 +788,6 @@ font-style: italic;

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json

    Produces

    This API call produces the following media types according to the Accept request header; @@ -693,7 +800,7 @@ font-style: italic;

    Responses

    200

    OK - CollectionResponse + EntitiesResponseMessage

    400

    Bad Request ErrorMessage @@ -703,55 +810,46 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    404

    - Not Found - ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    put /collections/{collectionId}
    -
    Update a collection. (updateCollection)
    -
    Update a collection.
    +
    get /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}
    +
    Get relationship with specified id. Specified id represents the relationship instance. (getRelationshipById)
    +
    Get relationship with specified id. Specified id represents the relationship instance.

    Path parameters

    -
    collectionId (required)
    +
    domainName (required)
    -
    Path Parameter — default: null
    -
    +
    Path Parameter — domain name default: null
    relationshipTypeName (required)
    -

    Consumes

    - This API call consumes the following media types via the Content-Type request header: -
      -
    • application/json
    • -
    +
    Path Parameter — default: null
    relationshipId (required)
    -

    Request body

    -
    -
    Collection Collection (required)
    +
    Path Parameter — default: null
    +
    -
    Body Parameter
    -

    Request headers

    Accept (required)
    -
    Header Parameter — default: application/json
    -
    Content-Type (required)
    - -
    Header Parameter — default: application/json
    +
    Header Parameter — default: application/yang.data+json
    +

    Return type

    +
    + + Object +
    @@ -775,13 +873,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      +
    • application/yang.data+json
    • application/problem+json

    Responses

    -

    204

    - No Content - +

    200

    + OK + Object

    400

    Bad Request ErrorMessage @@ -791,119 +890,47 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    409

    - Conflict +

    404

    + Not Found ErrorMessage

    500

    Internal Server Error ErrorMessage

    -

    Decorators

    -
    +
    Up -
    put /decorators
    -
    Update entities and/or relationships with decorator(s). (updateDecorator)
    -
    Update entities and/or relationships with decorator(s).
    - - -

    Consumes

    - This API call consumes the following media types via the Content-Type request header: -
      -
    • application/json
    • -
    +
    get /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships
    +
    Get topology relationships of a specific relationship type name. (getRelationshipsByType)
    +
    Get topology relationships of a specific relationship type name.
    -

    Request body

    +

    Path parameters

    -
    Decorator Decorator (required)
    +
    domainName (required)
    -
    Body Parameter
    +
    Path Parameter — domain name default: null
    relationshipTypeName (required)
    +
    Path Parameter — default: null
    + +

    Request headers

    Accept (required)
    -
    Header Parameter — default: application/json
    -
    Content-Type (required)
    -
    Header Parameter — default: application/json
    +

    Query parameters

    +
    +
    targetFilter (optional)
    +
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    - - - -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    - -

    Produces

    - This API call produces the following media types according to the Accept request header; - the media type will be conveyed by the Content-Type response header. -
      -
    • application/problem+json
    • -
    - -

    Responses

    -

    204

    - No Content - -

    400

    - Bad Request - ErrorMessage -

    401

    - Unauthorized - ErrorMessage -

    403

    - Forbidden - ErrorMessage -

    409

    - Conflict - ErrorMessage -

    500

    - Internal Server Error - ErrorMessage -
    -
    -

    EntitiesAndRelationships

    -
    -
    - Up -
    get /domains
    -
    Get all the available topology domains. (getAllDomains)
    -
    Get all the available topology domains.
    - - - - -

    Request headers

    -
    -
    Accept (required)
    - -
    Header Parameter — default: application/json
    - -
    - -

    Query parameters

    -
    -
    offset (optional)
    +
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    @@ -913,7 +940,7 @@ font-style: italic;

    Return type

    @@ -935,23 +962,7 @@ font-style: italic; "href" : "href" }, "totalCount" : 0, - "items" : [ { - "name" : "name", - "entityTypes" : { - "href" : "href" - }, - "relationshipTypes" : { - "href" : "href" - } - }, { - "name" : "name", - "entityTypes" : { - "href" : "href" - }, - "relationshipTypes" : { - "href" : "href" - } - } ], + "items" : [ "{}", "{}" ], "first" : { "href" : "href" } @@ -980,7 +991,7 @@ font-style: italic;

    Responses

    200

    OK - Domains + RelationshipsResponseMessage

    400

    Bad Request ErrorMessage @@ -995,12 +1006,12 @@ font-style: italic; ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships
    -
    Get all relationships for entity type name with specified id. Specified id represents the entity instance. (getAllRelationshipsForEntityId)
    -
    Get all relationships for entity type name with specified id. Specified id represents the entity instance.
    +
    get /domains/{domainName}/entity-types/{entityTypeName}/entities
    +
    Get all topology entities of a specific entity type. (getTopologyByEntityTypeName)
    +
    Get all topology entities of a specific entity type.

    Path parameters

    @@ -1008,8 +1019,6 @@ font-style: italic;
    Path Parameter — domain name default: null
    entityTypeName (required)
    -
    Path Parameter — default: null
    entityId (required)
    -
    Path Parameter — default: null
    @@ -1025,7 +1034,11 @@ font-style: italic;

    Query parameters

    -
    offset (optional)
    +
    targetFilter (optional)
    + +
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    + +
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    @@ -1035,7 +1048,7 @@ font-style: italic;

    Return type

    @@ -1074,9 +1087,6 @@ font-style: italic;

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json

    Produces

    This API call produces the following media types according to the Accept request header; @@ -1089,7 +1099,7 @@ font-style: italic;

    Responses

    200

    OK - RelationshipsResponseMessage + EntitiesResponseMessage

    400

    Bad Request ErrorMessage @@ -1099,26 +1109,27 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    404

    - Not Found - ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/entities
    -
    Get entities by domain (getEntitiesByDomain)
    -
    Get topology entities by domain, using specified targetFilter as mandatory query parameter.
    +
    get /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}
    +
    Get topology for entity type name with specified id. Specified id represents the entity instance. (getTopologyById)
    +
    Get topology for entity type name with specified id. Specified id represents the entity instance.

    Path parameters

    domainName (required)
    -
    Path Parameter — domain name default: null
    +
    Path Parameter — domain name default: null
    entityTypeName (required)
    + +
    Path Parameter — default: null
    entityId (required)
    + +
    Path Parameter — default: null
    @@ -1127,53 +1138,23 @@ font-style: italic;
    Accept (required)
    -
    Header Parameter — default: application/json
    +
    Header Parameter — default: application/yang.data+json
    -

    Query parameters

    -
    -
    targetFilter (optional)
    - -
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    - -
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    - -
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    - -
    Query Parameter — Result limiter. default: 500
    -

    Return type

    Example data

    -
    Content-Type: application/json
    -
    {
    -  "next" : {
    -    "href" : "href"
    -  },
    -  "last" : {
    -    "href" : "href"
    -  },
    -  "prev" : {
    -    "href" : "href"
    -  },
    -  "self" : {
    -    "href" : "href"
    -  },
    -  "totalCount" : 0,
    -  "items" : [ "{}", "{}" ],
    -  "first" : {
    -    "href" : "href"
    -  }
    -}
    +
    Content-Type: application/problem+json
    +
    Custom MIME type example not yet supported: application/problem+json

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -1191,14 +1172,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/json
    • +
    • application/yang.data+json
    • application/problem+json

    Responses

    200

    OK - EntitiesResponseMessage + Object

    400

    Bad Request ErrorMessage @@ -1208,27 +1189,26 @@ font-style: italic;

    403

    Forbidden ErrorMessage +

    404

    + Not Found + ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}
    -
    Get relationship with specified id. Specified id represents the relationship instance. (getRelationshipById)
    -
    Get relationship with specified id. Specified id represents the relationship instance.
    +
    get /domains/{domainName}/entity-types
    +
    Get all the available topology entity types in domain name. (getTopologyEntityTypes)
    +
    Get all the available topology entity types in domain name.

    Path parameters

    domainName (required)
    -
    Path Parameter — domain name default: null
    relationshipTypeName (required)
    - -
    Path Parameter — default: null
    relationshipId (required)
    - -
    Path Parameter — default: null
    +
    Path Parameter — domain name default: null
    @@ -1241,19 +1221,55 @@ font-style: italic;
    +

    Query parameters

    +
    +
    offset (optional)
    + +
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    + +
    Query Parameter — Result limiter. default: 500
    +

    Return type

    + EntityTypes - Object

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json
    +
    Content-Type: application/json
    +
    {
    +  "next" : {
    +    "href" : "href"
    +  },
    +  "last" : {
    +    "href" : "href"
    +  },
    +  "prev" : {
    +    "href" : "href"
    +  },
    +  "self" : {
    +    "href" : "href"
    +  },
    +  "totalCount" : 0,
    +  "items" : [ {
    +    "entities" : {
    +      "href" : "href"
    +    },
    +    "name" : "name"
    +  }, {
    +    "entities" : {
    +      "href" : "href"
    +    },
    +    "name" : "name"
    +  } ],
    +  "first" : {
    +    "href" : "href"
    +  }
    +}

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -1271,14 +1287,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/yang.data+json
    • +
    • application/json
    • application/problem+json

    Responses

    200

    OK - Object + EntityTypes

    400

    Bad Request ErrorMessage @@ -1288,28 +1304,23 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    404

    - Not Found - ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships
    -
    Get topology relationships of a specific relationship type name. (getRelationshipsByType)
    -
    Get topology relationships of a specific relationship type name.
    +
    get /domains/{domainName}/relationship-types
    +
    Get all the available topology relationship types. (getTopologyRelationshipTypes)
    +
    Get all the available topology relationship types.

    Path parameters

    domainName (required)
    -
    Path Parameter — domain name default: null
    relationshipTypeName (required)
    - -
    Path Parameter — default: null
    +
    Path Parameter — domain name default: null
    @@ -1324,11 +1335,7 @@ font-style: italic;

    Query parameters

    -
    targetFilter (optional)
    - -
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    - -
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    +
    offset (optional)
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    @@ -1338,7 +1345,7 @@ font-style: italic;

    Return type

    @@ -1360,7 +1367,17 @@ font-style: italic; "href" : "href" }, "totalCount" : 0, - "items" : [ "{}", "{}" ], + "items" : [ { + "relationships" : { + "href" : "href" + }, + "name" : "name" + }, { + "relationships" : { + "href" : "href" + }, + "name" : "name" + } ], "first" : { "href" : "href" } @@ -1389,7 +1406,7 @@ font-style: italic;

    Responses

    200

    OK - RelationshipsResponseMessage + RelationshipTypes

    400

    Bad Request ErrorMessage @@ -1404,22 +1421,20 @@ font-style: italic; ErrorMessage

    -
    +

    Schemas

    +
    Up -
    get /domains/{domainName}/entity-types/{entityTypeName}/entities
    -
    Get all topology entities of a specific entity type. (getTopologyByEntityTypeName)
    -
    Get all topology entities of a specific entity type.
    - -

    Path parameters

    -
    -
    domainName (required)
    - -
    Path Parameter — domain name default: null
    entityTypeName (required)
    +
    post /schemas
    +
    Create a new schema. (createSchema)
    +
    Create a new schema. The request body shall contain the schema in YANG format.
    -
    Path Parameter — default: null
    -
    +

    Consumes

    + This API call consumes the following media types via the Content-Type request header: +
      +
    • multipart/form-data
    • +

    Request headers

    @@ -1427,52 +1442,26 @@ font-style: italic;
    Accept (required)
    Header Parameter — default: application/json
    +
    Content-Type (required)
    -
    - -

    Query parameters

    -
    -
    targetFilter (optional)
    +
    Header Parameter — default: multipart/form-data
    -
    Query Parameter — Use targetFilter to specify the entity type and attributes to be returned in the REST response. The value for targetFilter can also be a list of entity types and attributes. default: null
    scopeFilter (optional)
    +
    -
    Query Parameter — Use scopeFilter to specify the attributes to match on. The value for scopeFilter can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null
    offset (optional)
    -
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    +

    Form parameters

    +
    +
    file (required)
    -
    Query Parameter — Result limiter. default: 500
    +
    Form Parameter — multipartFile default: null format: binary
    -

    Return type

    - -

    Example data

    -
    Content-Type: application/json
    -
    {
    -  "next" : {
    -    "href" : "href"
    -  },
    -  "last" : {
    -    "href" : "href"
    -  },
    -  "prev" : {
    -    "href" : "href"
    -  },
    -  "self" : {
    -    "href" : "href"
    -  },
    -  "totalCount" : 0,
    -  "items" : [ "{}", "{}" ],
    -  "first" : {
    -    "href" : "href"
    -  }
    -}
    +
    Content-Type: application/problem+json
    +
    Custom MIME type example not yet supported: application/problem+json

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -1490,14 +1479,13 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/json
    • application/problem+json

    Responses

    -

    200

    - OK - EntitiesResponseMessage +

    201

    + Created without response body +

    400

    Bad Request ErrorMessage @@ -1507,27 +1495,26 @@ font-style: italic;

    403

    Forbidden ErrorMessage +

    409

    + Conflict + ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}
    -
    Get topology for entity type name with specified id. Specified id represents the entity instance. (getTopologyById)
    -
    Get topology for entity type name with specified id. Specified id represents the entity instance.
    +
    delete /schemas/{schemaName}
    +
    Delete a schema. (deleteSchema)
    +
    Delete a schema.

    Path parameters

    -
    domainName (required)
    - -
    Path Parameter — domain name default: null
    entityTypeName (required)
    - -
    Path Parameter — default: null
    entityId (required)
    +
    schemaName (required)
    -
    Path Parameter — default: null
    +
    Path Parameter — default: o-ran-smo-teiv-ran
    @@ -1542,17 +1529,9 @@ font-style: italic; -

    Return type

    -
    - - Object -
    -

    Example data

    -
    Content-Type: application/problem+json
    -
    Custom MIME type example not yet supported: application/problem+json

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -1570,14 +1549,13 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/yang.data+json
    • application/problem+json

    Responses

    -

    200

    - OK - Object +

    204

    + No Content +

    400

    Bad Request ErrorMessage @@ -1587,26 +1565,23 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    404

    - Not Found - ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/entity-types
    -
    Get all the available topology entity types in domain name. (getTopologyEntityTypes)
    -
    Get all the available topology entity types in domain name.
    +
    get /schemas/{schemaName}/content
    +
    Get the model schema. (getSchemaByName)
    +
    Get the model schema by name.

    Path parameters

    -
    domainName (required)
    +
    schemaName (required)
    -
    Path Parameter — domain name default: null
    +
    Path Parameter — default: o-ran-smo-teiv-ran
    @@ -1619,55 +1594,19 @@ font-style: italic;
    -

    Query parameters

    -
    -
    offset (optional)
    - -
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    - -
    Query Parameter — Result limiter. default: 500
    -

    Return type

    - EntityTypes + String

    Example data

    -
    Content-Type: application/json
    -
    {
    -  "next" : {
    -    "href" : "href"
    -  },
    -  "last" : {
    -    "href" : "href"
    -  },
    -  "prev" : {
    -    "href" : "href"
    -  },
    -  "self" : {
    -    "href" : "href"
    -  },
    -  "totalCount" : 0,
    -  "items" : [ {
    -    "entities" : {
    -      "href" : "href"
    -    },
    -    "name" : "name"
    -  }, {
    -    "entities" : {
    -      "href" : "href"
    -    },
    -    "name" : "name"
    -  } ],
    -  "first" : {
    -    "href" : "href"
    -  }
    -}
    +
    Content-Type: application/problem+json
    +
    Custom MIME type example not yet supported: application/problem+json

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -1685,14 +1624,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/json
    • +
    • text/plain
    • application/problem+json

    Responses

    200

    OK - EntityTypes + String

    400

    Bad Request ErrorMessage @@ -1702,24 +1641,21 @@ font-style: italic;

    403

    Forbidden ErrorMessage +

    404

    + Not Found + ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    get /domains/{domainName}/relationship-types
    -
    Get all the available topology relationship types. (getTopologyRelationshipTypes)
    -
    Get all the available topology relationship types.
    - -

    Path parameters

    -
    -
    domainName (required)
    +
    get /schemas
    +
    Get a list of all schemas. (getSchemas)
    +
    Get a list of all schemas.
    -
    Path Parameter — domain name default: null
    -
    @@ -1733,7 +1669,9 @@ font-style: italic;

    Query parameters

    -
    offset (optional)
    +
    domain (optional)
    + +
    Query Parameter — default: null
    offset (optional)
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    @@ -1743,7 +1681,7 @@ font-style: italic;

    Return type

    @@ -1766,15 +1704,19 @@ font-style: italic; }, "totalCount" : 0, "items" : [ { - "relationships" : { + "domain" : "domain", + "name" : "name", + "content" : { "href" : "href" }, - "name" : "name" + "revision" : "revision" }, { - "relationships" : { + "domain" : "domain", + "name" : "name", + "content" : { "href" : "href" }, - "name" : "name" + "revision" : "revision" } ], "first" : { "href" : "href" @@ -1804,7 +1746,7 @@ font-style: italic;

    Responses

    200

    OK - RelationshipTypes + SchemaList

    400

    Bad Request ErrorMessage @@ -1819,13 +1761,13 @@ font-style: italic; ErrorMessage

    -

    GeoQuery

    -
    +

    TopologyGroups

    +
    Up -
    post /geo-queries
    -
    Geo query topology entity or entities across topology domains. (geoQueryTopologyAcrossDomains)
    -
    Geo query topology entity or entities across topology domains.
    +
    post /groups
    +
    Create group. (createGroup)
    +
    Create group.

    Consumes

    @@ -1836,7 +1778,7 @@ font-style: italic;

    Request body

    -
    QueryMessage QueryMessage (required)
    +
    Group Group (required)
    Body Parameter
    @@ -1849,28 +1791,29 @@ font-style: italic;
    Header Parameter — default: application/json
    Content-Type (required)
    -
    Header Parameter — default: application/json
    - -
    - -

    Query parameters

    -
    -
    offset (optional)
    - -
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    +
    Header Parameter — default: application/json
    -
    Query Parameter — Result limiter. default: 500
    +

    Return type

    + GroupResponse - Object
    +

    Example data

    +
    Content-Type: application/json
    +
    {
    +  "groupName" : "groupName",
    +  "criteria" : {
    +    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +  },
    +  "id" : "id"
    +}

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -1896,9 +1839,9 @@ font-style: italic;

    Responses

    -

    200

    - OK - Object +

    201

    + Created + GroupResponse

    400

    Bad Request ErrorMessage @@ -1916,40 +1859,31 @@ font-style: italic; ErrorMessage

    -

    Schemas

    -
    +
    Up -
    post /schemas
    -
    Create a new schema. (createSchema)
    -
    Create a new schema.
    +
    delete /groups/{groupId}
    +
    Delete a group with specified id. (deleteGroup)
    +
    Delete a group with specified id.
    +

    Path parameters

    +
    +
    groupId (required)
    + +
    Path Parameter — default: null
    +
    -

    Consumes

    - This API call consumes the following media types via the Content-Type request header: -
      -
    • multipart/form-data
    • -

    Request headers

    Accept (required)
    -
    Header Parameter — default: application/json
    -
    Content-Type (required)
    -
    Header Parameter — default: application/json
    -

    Form parameters

    -
    -
    file (required)
    - -
    Form Parameter — multipartFile default: null format: binary
    -
    @@ -1978,8 +1912,8 @@ font-style: italic;

    Responses

    -

    201

    - Created without response body +

    204

    + No Content

    400

    Bad Request @@ -1990,27 +1924,21 @@ font-style: italic;

    403

    Forbidden ErrorMessage -

    409

    - Conflict +

    404

    + Not Found ErrorMessage

    500

    Internal Server Error ErrorMessage

    -
    +
    Up -
    delete /schemas/{schemaName}
    -
    Delete a schema. (deleteSchema)
    -
    Delete a schema.
    - -

    Path parameters

    -
    -
    schemaName (required)
    +
    get /groups
    +
    Get all groups. (getAllGroups)
    +
    Get all groups.
    -
    Path Parameter — default: o-ran-smo-teiv-ran
    -
    @@ -2022,11 +1950,57 @@ font-style: italic;
    +

    Query parameters

    +
    +
    offset (optional)
    + +
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    + +
    Query Parameter — Result limiter. default: 500
    +
    +

    Return type

    +
    + Groups + +
    +

    Example data

    +
    Content-Type: application/json
    +
    {
    +  "next" : {
    +    "href" : "href"
    +  },
    +  "last" : {
    +    "href" : "href"
    +  },
    +  "prev" : {
    +    "href" : "href"
    +  },
    +  "self" : {
    +    "href" : "href"
    +  },
    +  "totalCount" : 0,
    +  "items" : [ {
    +    "groupName" : "groupName",
    +    "criteria" : {
    +      "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +    },
    +    "id" : "id"
    +  }, {
    +    "groupName" : "groupName",
    +    "criteria" : {
    +      "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +    },
    +    "id" : "id"
    +  } ],
    +  "first" : {
    +    "href" : "href"
    +  }
    +}

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -2044,10 +2018,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      +
    • application/json
    • application/problem+json

    Responses

    +

    200

    + OK + Groups

    204

    No Content @@ -2065,18 +2043,18 @@ font-style: italic; ErrorMessage

    -
    +
    Up -
    get /schemas/{schemaName}/content
    -
    Get the model schema. (getSchemaByName)
    -
    Get the model schema by name.
    +
    get /groups/{groupId}
    +
    Get a group with specified id. (getGroup)
    +
    Get a Group with specified id.

    Path parameters

    -
    schemaName (required)
    +
    groupId (required)
    -
    Path Parameter — default: o-ran-smo-teiv-ran
    +
    Path Parameter — default: null
    @@ -2093,12 +2071,21 @@ font-style: italic;

    Return type

    + GroupResponse - String
    +

    Example data

    +
    Content-Type: application/json
    +
    {
    +  "groupName" : "groupName",
    +  "criteria" : {
    +    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
    +  },
    +  "id" : "id"
    +}

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -2119,14 +2106,14 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • text/plain
    • +
    • application/json
    • application/problem+json

    Responses

    200

    OK - String + GroupResponse

    400

    Bad Request ErrorMessage @@ -2144,79 +2131,53 @@ font-style: italic; ErrorMessage

    -
    +
    Up -
    get /schemas
    -
    Get a list of all schemas. (getSchemas)
    -
    Get a list of all schemas.
    +
    put /groups/{groupId}
    +
    Update a Group. (updateGroup)
    +
    Update a Group.
    +

    Path parameters

    +
    +
    groupId (required)
    +
    Path Parameter — default: null
    +
    +

    Consumes

    + This API call consumes the following media types via the Content-Type request header: +
      +
    • application/json
    • +
    -

    Request headers

    +

    Request body

    -
    Accept (required)
    +
    Group Group (required)
    -
    Header Parameter — default: application/json
    +
    Body Parameter
    -

    Query parameters

    +

    Request headers

    -
    domain (optional)
    +
    Accept (required)
    -
    Query Parameter — default: null
    offset (optional)
    +
    Header Parameter — default: application/json
    +
    Content-Type (required)
    -
    Query Parameter — Pagination offset. default: 0
    limit (optional)
    +
    Header Parameter — default: application/json
    -
    Query Parameter — Result limiter. default: 500
    -

    Return type

    -
    - SchemaList - -
    +

    Example data

    -
    Content-Type: application/json
    -
    {
    -  "next" : {
    -    "href" : "href"
    -  },
    -  "last" : {
    -    "href" : "href"
    -  },
    -  "prev" : {
    -    "href" : "href"
    -  },
    -  "self" : {
    -    "href" : "href"
    -  },
    -  "totalCount" : 0,
    -  "items" : [ {
    -    "domain" : [ "domain", "domain" ],
    -    "name" : "name",
    -    "content" : {
    -      "href" : "href"
    -    },
    -    "revision" : "revision"
    -  }, {
    -    "domain" : [ "domain", "domain" ],
    -    "name" : "name",
    -    "content" : {
    -      "href" : "href"
    -    },
    -    "revision" : "revision"
    -  } ],
    -  "first" : {
    -    "href" : "href"
    -  }
    -}
    +
    Content-Type: application/problem+json
    +
    Custom MIME type example not yet supported: application/problem+json

    Example data

    Content-Type: application/problem+json
    Custom MIME type example not yet supported: application/problem+json
    @@ -2234,14 +2195,13 @@ font-style: italic; This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
      -
    • application/json
    • application/problem+json

    Responses

    -

    200

    - OK - SchemaList +

    204

    + No Content +

    400

    Bad Request ErrorMessage @@ -2251,6 +2211,9 @@ font-style: italic;

    403

    Forbidden ErrorMessage +

    409

    + Conflict + ErrorMessage

    500

    Internal Server Error ErrorMessage @@ -2263,10 +2226,6 @@ font-style: italic;

    Table of Contents

    1. Classifier - Classifier
    2. -
    3. Collection -
    4. -
    5. CollectionResponse -
    6. -
    7. CollectionResponse_criteria -
    8. -
    9. Collections - Collections
    10. Decorator - Decorator
    11. Domains - Domains
    12. Domains_items_inner -
    13. @@ -2276,8 +2235,11 @@ font-style: italic;
    14. EntityTypes - EntityTypes
    15. EntityTypes_items_inner -
    16. ErrorMessage - Error
    17. +
    18. Group -
    19. +
    20. GroupResponse -
    21. +
    22. GroupResponse_criteria -
    23. +
    24. Groups - Groups
    25. Href - Href
    26. -
    27. QueryMessage - Query
    28. RelationshipTypes - RelationshipTypes
    29. RelationshipTypes_items_inner -
    30. RelationshipsResponseMessage - Relationships
    31. @@ -2294,49 +2256,11 @@ font-style: italic;
      operation (optional)
      Enum:
      merge
      delete
      -
      classifier (optional)
      +
      classifiers (optional)
      entityIds (optional)
      relationshipIds (optional)
    -
    -

    Collection - Up

    -
    -
    -
    collectionName (optional)
    -
    criteria (optional)
    -
    -
    -
    -

    CollectionResponse - Up

    -
    -
    -
    id (optional)
    -
    collectionName (optional)
    -
    criteria (optional)
    -
    -
    -
    -

    CollectionResponse_criteria - Up

    -
    -
    -
    resourceInstances (optional)
    -
    resourceQuery (optional)
    -
    -
    -
    -

    Collections - Collections Up

    -
    -
    -
    items (optional)
    -
    self (optional)
    -
    first (optional)
    -
    prev (optional)
    -
    next (optional)
    -
    last (optional)
    -
    totalCount (optional)
    -
    -

    Decorator - Decorator Up

    @@ -2344,7 +2268,7 @@ font-style: italic;
    operation (optional)
    Enum:
    merge
    delete
    -
    decorators (optional)
    +
    decorators (optional)
    map[String, oas_any_type_not_mapped] Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema.
    entityIds (optional)
    relationshipIds (optional)
    @@ -2432,17 +2356,48 @@ font-style: italic;
    -

    Href - Href Up

    +

    Group - Up

    -
    href (optional)
    String format: uri-template
    +
    groupName (optional)
    +
    criteria (optional)
    +
    +
    +
    +

    GroupResponse - Up

    +
    +
    +
    id (optional)
    +
    groupName (optional)
    +
    criteria (optional)
    +
    +
    +
    +

    GroupResponse_criteria - Up

    +
    +
    +
    resourceInstances (optional)
    +
    resourceQuery (optional)
    +
    +
    +
    +

    Groups - Groups Up

    +
    +
    +
    items (optional)
    +
    self (optional)
    +
    first (optional)
    +
    prev (optional)
    +
    next (optional)
    +
    last (optional)
    +
    totalCount (optional)
    -

    QueryMessage - Query Up

    +

    Href - Href Up

    -
    query (optional)
    +
    href (optional)
    String format: uri-template
    @@ -2484,7 +2439,7 @@ font-style: italic;
    name (optional)
    -
    domain (optional)
    +
    domain (optional)
    revision (optional)
    content (optional)
    diff --git a/docs/offeredapis/topology-exposure-inventory-openapi.json b/docs/offeredapis/topology-exposure-inventory-openapi.json index 9cb68f8..0d2ead0 100644 --- a/docs/offeredapis/topology-exposure-inventory-openapi.json +++ b/docs/offeredapis/topology-exposure-inventory-openapi.json @@ -1,13 +1,13 @@ { "openapi" : "3.0.2", "info" : { - "description" : "Topology and Inventory data is the information that represents entities in a telecommunications network and the relationships between them that provide insight into a particular aspect of the network of importance to specific use cases. Topology and Inventory data can be derived from inventory, configuration, or other data.\n\nTopology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data.\n\nEntities are enabling the modelling and storage of complex network infrastructure and relationships.\n\nRelationships are a uni-directional connection between two entities, one of which is the originating side (A-side) and the other is the terminating side (B-side). The order of the sides matters since it defines the relationship itself which must be unique\n\nTopology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests.\n\n## Querying simple entities\nEntityType is used as the root of the queries (from here referred as RootObject). Every other object, either *targetFilter* or *scopeFilter*, has to relate to the RootObject. The queries are constructed starting from the RootObject and all other objects are joined to it. If there is no connection between the RootObject and the other object(s), the query will not get constructed. The RootObject still can be retrieved and filtered using the */attributes*.\n\n| USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT |\n|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|\n| To return the ids for all instances of the entityType used in the query. |  GNBDUFunction | | | All ids of every GNBDUFunction |\n| To return all attributes of every instance of the entityType used in the query. |  GNBDUFunction |  /attributes | | All GNBDUFunctions with every attribute |\n| To return every instance of the entityType 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. |  GNBDUFunction |  /attributes(gNBId)
       **OR**
    /attributes/gNBId | | All FDNs of every GNBDUFunction |\n| To return every instance of the entityType used in the query, but only the attributes that were defined in the *targetFilter* parameter.
    Case 1: The attributes must be separated by a comma \",\" in case of using parenthesis \"()\".
    Case 2: The attributes must be separated by a semicolon \";\" in case of using slash \"/\".
    Note: The attributes must be valid *targetFilter* of the object. |  GNBDUFunction |  /attributes(gNBId, gNBIdLength)
       **OR**
    /attributes/gNBId; /attributes/gNBIdLength | | All Ids and FDNs of every GNBDUFunction |\n| To return the ids for all instances of the entityType used in the query, that matches the given attribute in the *scopeFilter* parameter.
    Note: The attribute must be a valid field of the object. |  GNBDUFunction | | /attributes[contains (@fdn, \"/SubNetwork=Ireland/\")] | Unique set of ids of GNBDUFunctions, where fdn contains \"SubNetwork=Ireland\" |\n| To return the ids for all instances of the entityType used in the query, that matches the given attributes in the *scopeFilter* parameter.
    Note: the entityType and the object in the *scopeFilter* parameter must match, and the attributes must be valid field or fields of the object. The attributes must be separated by a comma \",\". |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 |\n| To return the ids for all instances of the entityType used in the query, that satisfies every condition in one of the tags in the *scopeFilter* parameter. A tag is a complete unit of *scopeFilter* parameter surrounded by square brackets.
    Note: The attributes must be valid field or fields of the object. |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111]
       **OR**
    /attributes[@gNBIdLength=3 and @gNBId=112] | Unique set of ids of GNBDUFunctions, where where the gNBIdLength equals 3 and the gNBId is either 111 or 112 |\n\n## Querying connected entities\nIt is possible to get information about directly connected objects as well. If entityType is present in the *targetFilter* parameter, the query provides information about that entityType itself.\n\n| USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|\n| To return the ids for all instances of the entityType in the *targetFilter* parameter, if they are directly related to the queried entityType. |  GNBDUFunction |  /NRCellDU | | Unique set of ids of NRCellDUs that relates to GNBDUFunctions directly with any relationship type |\n| To return the ids for all instances of the entityTypes in the *targetFilter* parameter, if they are directly related to the entityType. |  GNBDUFunction |  /NRCellDU ;  /NRSectorCarrier | | Unique set of ids of NRCellDUs and NRSectorCarriers that relates to GNBDUFunctions directly with any relationship type |\n| To return the ids for all instances of the queried entityType that has one or more direct relationships with the entityType specified in the *scopeFilter* parameter. |  GNBDUFunction | | /AntennaCapability | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability with any relationship type |\n| To return the ids for all instances of the queried entityType that has one or more direct relationships with at least one of the entityTypes specified in the *scopeFilter* parameter. |  GNBDUFunction | | /AntennaCapability
       **OR**
    /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type |\n", + "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\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 | GNBDUFunction | | | All ids of every GNBDUFunction |\n| To return all attributes of every instance of the entityTypeName used in the query. | RAN | GNBDUFunction | /attributes | | All GNBDUFunctions 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 | GNBDUFunction | /attributes(gNBId) | | All gNBIds of every GNBDUFunction |\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 | GNBDUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every GNBDUFunction |\n| To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the *scopeFilter* parameter. | RAN | GNBDUFunction | | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where sourceIds contains *SubNetwork=Ireland* |\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 | GNBDUFunction | | /attributes [@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 |\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 | GNBDUFunction | | /attributes [@gNBIdLength=3] | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 or the sourceIds contains an item with \"SubNetwork=Ireland\" |\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 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\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 | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | | All relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. |\n| To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION | | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. |\n| To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. |\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 = 'gnbdu-function-model:Indoor'] | All the entity IDs that are classified with \"gnbdu-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[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with \"gnbdu-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(@gnbdu-function-model:textdata, \"\")] | All the entity IDs that are exactly matched with \"gnbdu-function-model:textdata as key of the decorator in RAN domain. |\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 = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is \"gnbdu-function-model:textdata\" and the value of the decorator is 'Stockholm'\" and where classifier exactly contains \"gnbdu-function-model:Indoor\". |\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(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and where key of the decorator is \"gnbdu-function-model:textdata\" and the value of the decorator partially contains 'Stoc'. |\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(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and decorators where key of the decorator is \"gnbdu-function-model:textdata\" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text \"Ind\". |\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 relationships IDs and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers. |\n| Return all related relationships 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 = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is \"gnbdu-function-model:textdata\" and the value of the decorator is 'Stockholm'\" and classifiers exactly contains \"gnbdu-function-model:Indoor\". |\n| Return all related relationships IDs and classifiers that are partially matched for the given classifier. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | /classifiers[contains(@item, 'Ind')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text \"Ind\". |\n| Return all related relationships IDs and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is \"gnbdu-function-model:textdata\" and the value of the decorator partially contains 'Stock'. |\n| Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is \"gnbdu-function-model:textdata\" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text \"Ind\". |\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 and Inventory API", + "title" : "Topology Exposure and Inventory API", "version" : "0.11.0", "x-api-id" : "52812f69-83ac-4dfa-b83a-1a1bdf2d49b8", "x-audience" : "external-public" @@ -27,9 +27,6 @@ }, { "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" : "Provides the capability to perform geographical queries on topology entities.", - "name" : "Geo-query" }, { "description" : "Provides the capability to update or remove user-defined keywords or tags on entities and relationships.", "name" : "Classifiers" @@ -38,7 +35,7 @@ "name" : "Decorators" }, { "description" : "Provides the capability to group topology entities of any type, with an appropriate description and other criteria.", - "name" : "Collections" + "name" : "Topology Groups" } ], "paths" : { "/domains" : { @@ -348,7 +345,7 @@ "description" : "Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.", "examples" : { "scopeFilter" : { - "value" : "/attributes[@nRTAC=310\"]" + "value" : "/attributes[@nRTAC=310]" } }, "explode" : true, @@ -476,8 +473,8 @@ "name" : "Accept", "required" : true, "schema" : { - "default" : "application/json", - "example" : "application/json", + "default" : "application/yang.data+json", + "example" : "application/yang.data+json", "type" : "string" }, "style" : "simple" @@ -650,6 +647,36 @@ "type" : "string" }, "style" : "simple" + }, { + "description" : "Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes.", + "examples" : { + "targetFilter" : { + "value" : "/attributes(nCI,nRPCI)" + } + }, + "explode" : true, + "in" : "query", + "name" : "targetFilter", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.", + "examples" : { + "scopeFilter" : { + "value" : "/attributes[@nRTAC=310]" + } + }, + "explode" : true, + "in" : "query", + "name" : "scopeFilter", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" }, { "description" : "Pagination offset.", "explode" : true, @@ -958,7 +985,7 @@ "description" : "Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.", "examples" : { "scopeFilter" : { - "value" : "/attributes[@nRTAC=310\"]" + "value" : "/attributes[@nRTAC=310]" } }, "explode" : true, @@ -1086,8 +1113,8 @@ "name" : "Accept", "required" : true, "schema" : { - "default" : "application/json", - "example" : "application/json", + "default" : "application/yang.data+json", + "example" : "application/yang.data+json", "type" : "string" }, "style" : "simple" @@ -1262,7 +1289,7 @@ "description" : "Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.", "examples" : { "scopeFilter" : { - "value" : "/attributes[@nRTAC=310\"]" + "value" : "/attributes[@nRTAC=310]" } }, "explode" : true, @@ -1516,7 +1543,7 @@ "tags" : [ "Schemas" ] }, "post" : { - "description" : "Create a new schema.", + "description" : "Create a new schema. The request body shall contain the schema in YANG format.", "operationId" : "createSchema", "parameters" : [ { "explode" : false, @@ -1535,8 +1562,8 @@ "name" : "Content-Type", "required" : true, "schema" : { - "default" : "application/json", - "example" : "application/json", + "default" : "multipart/form-data", + "example" : "multipart/form-data", "type" : "string" }, "style" : "simple" @@ -1604,7 +1631,7 @@ "content" : { "application/problem+json" : { "example" : { - "status" : "409'", + "status" : "409", "title" : "Conflicting request", "details" : "The request cannot be processed as the resource is in use." }, @@ -1853,172 +1880,9 @@ "tags" : [ "Schemas" ] } }, - "/geo-queries" : { - "post" : { - "description" : "Geo query topology entity or entities across topology domains.", - "operationId" : "geoQueryTopologyAcrossDomains", - "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" - }, { - "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" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "examples" : { - "geoQuery" : { - "$ref" : "#/components/examples/QueryMessageExample" - } - }, - "schema" : { - "$ref" : "#/components/schemas/QueryMessage" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "geoQueryResponse" : { - "$ref" : "#/components/examples/QueryResponseExample" - } - }, - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "400", - "title" : "Bad Request", - "details" : "The provided request is not valid" - }, - "schema" : { - "$ref" : "#/components/schemas/ErrorMessage" - } - } - }, - "description" : "Bad Request" - }, - "401" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "401", - "title" : "Unauthorized request", - "details" : "This request is unauthorized" - }, - "schema" : { - "$ref" : "#/components/schemas/ErrorMessage" - } - } - }, - "description" : "Unauthorized" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "403", - "title" : "Request Forbidden", - "details" : "This request is forbidden" - }, - "schema" : { - "$ref" : "#/components/schemas/ErrorMessage" - } - } - }, - "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/ErrorMessage" - } - } - }, - "description" : "Conflict" - }, - "500" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : "500", - "title" : "Internal Server Error", - "details" : "Internal Server Error occurred" - }, - "schema" : { - "$ref" : "#/components/schemas/ErrorMessage" - } - } - }, - "description" : "Internal Server Error" - } - }, - "summary" : "Geo query topology entity or entities across topology domains.", - "tags" : [ "Geo-query" ] - } - }, "/classifiers" : { - "put" : { - "description" : "Update entities and/or relationships with classifier(s).", + "post" : { + "description" : "Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.", "operationId" : "updateClassifier", "parameters" : [ { "explode" : false, @@ -2112,7 +1976,7 @@ "content" : { "application/problem+json" : { "example" : { - "status" : "409'", + "status" : "409", "title" : "Conflicting request", "details" : "The request cannot be processed as the resource is in use." }, @@ -2144,8 +2008,8 @@ } }, "/decorators" : { - "put" : { - "description" : "Update entities and/or relationships with decorator(s).", + "post" : { + "description" : "Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.", "operationId" : "updateDecorator", "parameters" : [ { "explode" : false, @@ -2239,7 +2103,7 @@ "content" : { "application/problem+json" : { "example" : { - "status" : "409'", + "status" : "409", "title" : "Conflicting request", "details" : "The request cannot be processed as the resource is in use." }, @@ -2270,10 +2134,10 @@ "tags" : [ "Decorators" ] } }, - "/collections" : { + "/groups" : { "get" : { - "description" : "Get all collections.", - "operationId" : "getAllCollections", + "description" : "Get all groups.", + "operationId" : "getAllGroups", "parameters" : [ { "explode" : false, "in" : "header", @@ -2316,12 +2180,12 @@ "content" : { "application/json" : { "examples" : { - "collections" : { - "$ref" : "#/components/examples/CollectionsResponseExample" + "groups" : { + "$ref" : "#/components/examples/GroupsResponseExample" } }, "schema" : { - "$ref" : "#/components/schemas/Collections" + "$ref" : "#/components/schemas/Groups" } } }, @@ -2392,12 +2256,12 @@ "description" : "Internal Server Error" } }, - "summary" : "Get all collections.", - "tags" : [ "Collections" ] + "summary" : "Get all groups.", + "tags" : [ "Topology Groups" ] }, "post" : { - "description" : "Create a collection.", - "operationId" : "createCollection", + "description" : "Create group.", + "operationId" : "createGroup", "parameters" : [ { "explode" : false, "in" : "header", @@ -2425,15 +2289,15 @@ "content" : { "application/json" : { "examples" : { - "dynamicCollection" : { - "$ref" : "#/components/examples/DynamicCollectionExample" + "dynamicGroup" : { + "$ref" : "#/components/examples/DynamicGroupExample" }, - "staticCollection" : { - "$ref" : "#/components/examples/StaticCollectionExample" + "staticGroup" : { + "$ref" : "#/components/examples/StaticGroupExample" } }, "schema" : { - "$ref" : "#/components/schemas/Collection" + "$ref" : "#/components/schemas/Group" } } }, @@ -2444,12 +2308,12 @@ "content" : { "application/json" : { "examples" : { - "collection" : { - "$ref" : "#/components/examples/CollectionResponseExample" + "group" : { + "$ref" : "#/components/examples/GroupResponseExample" } }, "schema" : { - "$ref" : "#/components/schemas/CollectionResponse" + "$ref" : "#/components/schemas/GroupResponse" } } }, @@ -2504,7 +2368,7 @@ "content" : { "application/problem+json" : { "example" : { - "status" : "409'", + "status" : "409", "title" : "Conflicting request", "details" : "The request cannot be processed as the resource is in use." }, @@ -2531,14 +2395,14 @@ "description" : "Internal Server Error" } }, - "summary" : "Create a collection.", - "tags" : [ "Collections" ] + "summary" : "Create group.", + "tags" : [ "Topology Groups" ] } }, - "/collections/{collectionId}" : { + "/groups/{groupId}" : { "delete" : { - "description" : "Delete a collection with specified id.", - "operationId" : "deleteCollection", + "description" : "Delete a group with specified id.", + "operationId" : "deleteGroup", "parameters" : [ { "explode" : false, "in" : "header", @@ -2553,7 +2417,7 @@ }, { "explode" : false, "in" : "path", - "name" : "collectionId", + "name" : "groupId", "required" : true, "schema" : { "type" : "string" @@ -2641,12 +2505,12 @@ "description" : "Internal Server Error" } }, - "summary" : "Delete a collection with specified id.", - "tags" : [ "Collections" ] + "summary" : "Delete a group with specified id.", + "tags" : [ "Topology Groups" ] }, "get" : { - "description" : "Get a collection with specified id.", - "operationId" : "getCollection", + "description" : "Get a Group with specified id.", + "operationId" : "getGroup", "parameters" : [ { "explode" : false, "in" : "header", @@ -2661,7 +2525,7 @@ }, { "explode" : false, "in" : "path", - "name" : "collectionId", + "name" : "groupId", "required" : true, "schema" : { "type" : "string" @@ -2673,12 +2537,12 @@ "content" : { "application/json" : { "examples" : { - "collection" : { - "$ref" : "#/components/examples/CollectionResponseExample" + "group" : { + "$ref" : "#/components/examples/GroupResponseExample" } }, "schema" : { - "$ref" : "#/components/schemas/CollectionResponse" + "$ref" : "#/components/schemas/GroupResponse" } } }, @@ -2760,12 +2624,12 @@ "description" : "Internal Server Error" } }, - "summary" : "Get a collection with specified id.", - "tags" : [ "Collections" ] + "summary" : "Get a group with specified id.", + "tags" : [ "Topology Groups" ] }, "put" : { - "description" : "Update a collection.", - "operationId" : "updateCollection", + "description" : "Update a Group.", + "operationId" : "updateGroup", "parameters" : [ { "explode" : false, "in" : "header", @@ -2791,7 +2655,7 @@ }, { "explode" : false, "in" : "path", - "name" : "collectionId", + "name" : "groupId", "required" : true, "schema" : { "type" : "string" @@ -2802,15 +2666,15 @@ "content" : { "application/json" : { "examples" : { - "dynamicCollection" : { - "$ref" : "#/components/examples/DynamicCollectionExample" + "dynamicGroup" : { + "$ref" : "#/components/examples/DynamicGroupExample" }, - "staticCollection" : { - "$ref" : "#/components/examples/StaticCollectionExample" + "staticGroup" : { + "$ref" : "#/components/examples/StaticGroupExample" } }, "schema" : { - "$ref" : "#/components/schemas/Collection" + "$ref" : "#/components/schemas/Group" } } }, @@ -2870,7 +2734,7 @@ "content" : { "application/problem+json" : { "example" : { - "status" : "409'", + "status" : "409", "title" : "Conflicting request", "details" : "The request cannot be processed as the resource is in use." }, @@ -2897,8 +2761,8 @@ "description" : "Internal Server Error" } }, - "summary" : "Update a collection.", - "tags" : [ "Collections" ] + "summary" : "Update a Group.", + "tags" : [ "Topology Groups" ] } } }, @@ -2909,7 +2773,7 @@ "operation" : "merge", "classifiers" : [ "module-x:Outdoor", "module-y:Rural", "module-z:Weekend" ], "entityIds" : [ "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" ], - "relationshipIds" : [ "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" ] + "relationshipIds" : [ "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" ] } }, "DecoratorExample" : { @@ -2920,7 +2784,7 @@ "module-y:vendor" : "Ericsson" }, "entityIds" : [ "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" ], - "relationshipIds" : [ "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" ] + "relationshipIds" : [ "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" ] } }, "EntityResponseExample" : { @@ -3006,7 +2870,7 @@ "RelationshipResponseExample" : { "value" : { "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER" : [ { - "id" : "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=", + "id" : "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B", "aSide" : "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "bSide" : "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1", "decorators" : { @@ -3024,7 +2888,7 @@ "value" : { "items" : [ { "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER" : [ { - "id" : "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmVs=", + "id" : "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B", "aSide" : "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "bSide" : "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1", "decorators" : { @@ -3038,7 +2902,7 @@ } ] }, { "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER" : [ { - "id" : "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmVsYW5kLE1lQ2=", + "id" : "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=11AB21444F9D7C6DAC7453879AB5586D294B495E43AC6F94750767DD624014DB7317E9A5EE73239876649D801037D6347355B19C5D97222B3C25000CF8A97C78", "aSide" : "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2", "bSide" : "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=2", "decorators" : { @@ -3144,15 +3008,15 @@ "DomainsResponseExample" : { "value" : { "items" : [ { - "name" : "RAN_CLOUD", + "name" : "EQUIPMENT", "entityTypes" : { - "href" : "/domains/CLOUD/entity-types" + "href" : "/domains/EQUIPMENT/entity-types" }, "relationshipTypes" : { - "href" : "/domains/CLOUD/relationship-types" + "href" : "/domains/EQUIPMENT/relationship-types" } }, { - "name" : "RAN_OAM", + "name" : "OAM", "entityTypes" : { "href" : "/domains/OAM/entity-types" }, @@ -3160,7 +3024,7 @@ "href" : "/domains/OAM/relationship-types" } }, { - "name" : "RAN_LOGICAL", + "name" : "RAN", "entityTypes" : { "href" : "/domains/RAN/entity-types" }, @@ -3186,34 +3050,23 @@ "totalCount" : 343 } }, - "QueryMessageExample" : { - "value" : { - "query" : "WITH point({longitude: 12.78232, latitude: 56.7455}) AS p1, point({latitude: 56.7134, longitude: 12.79565}) AS p2 RETURN point.distance(p1, p2) AS distance" - } - }, - "QueryResponseExample" : { - "value" : { - "query" : "WITH point({longitude: 12.78232, latitude: 56.7455}) AS p1, point({latitude: 56.7134, longitude: 12.79565}) AS p2 RETURN point.distance(p1, p2) AS distance", - "response" : "distance : 2873.5" - } - }, - "StaticCollectionExample" : { + "StaticGroupExample" : { "value" : { - "collectionName" : "son-cell-filter-group-1", + "groupName" : "son-cell-filter-group-1", "criteria" : { "resourceInstances" : [ "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" ] } } }, - "DynamicCollectionExample" : { + "DynamicGroupExample" : { "value" : { - "collectionName" : "son-cell-filter-group-1", + "groupName" : "son-cell-filter-group-1", "criteria" : { "resourceQuery" : { "url" : "/domains/RAN/entity-types/NRCellDU/entities", "method" : "GET", "queryParams" : { - "target:Filter" : "/attributes(cmId)", + "target:Filter" : "/sourceIds", "scopeFilter" : "/attributes[@nRTAC=310]" }, "requestBody" : "" @@ -3221,85 +3074,148 @@ } } }, - "CollectionResponseExample" : { + "GroupResponseExample" : { "value" : { - "id" : "urn:oran:collection:/JHKJ4H5JH45345TB=", - "collectionName" : "son-cell-filter-group-1", + "id" : "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB=", + "groupName" : "son-cell-filter-group-1", "criteria" : { "resourceInstances" : [ "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" ] } } }, - "CollectionsResponseExample" : { + "GroupsResponseExample" : { "value" : { "items" : [ { - "id" : "urn:topology:collection:/JHKJ4H5JH45345TB=", - "collectionName" : "son-cell-group-1", + "id" : "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB=", + "groupName" : "son-cell-group-1", "criteria" : { "resourceInstances" : [ "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" ] } }, { - "id" : "urn:topology:collection:/DFJER77R6F7S9VD=", - "collectionName" : "son-cell-group-2", + "id" : "urn:o-ran:smo:teiv:group:/DFJER77R6F7S9VD=", + "groupName" : "son-cell-group-2", "criteria" : { "resourceInstances" : [ "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=4", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=5", "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=6" ] } + }, { + "id" : "urn:o-ran:smo:teiv:group:/LMND77R6F7S9VD=", + "groupName" : "son-cell-group-3", + "criteria" : { + "resourceQuery" : { + "url" : "/domains/RAN/entity-types/NRCellDU/entities", + "method" : "GET", + "queryParams" : { + "target:Filter" : "/sourceIds", + "scopeFilter" : "/attributes[@nRTAC=310]" + }, + "requestBody" : "" + } + } } ], "self" : { - "href" : "/collections?offset=0&limit=500" + "href" : "/groups?offset=0&limit=500" }, "first" : { - "href" : "/collections?offset=0&limit=500" + "href" : "/groups?offset=0&limit=500" }, "prev" : { - "href" : "/collections?offset=0&limit=500" + "href" : "/groups?offset=0&limit=500" }, "next" : { - "href" : "/collections?offset=500&limit=500" + "href" : "/groups?offset=0&limit=500" }, "last" : { - "href" : "/collections?offset=678&limit=500" + "href" : "/groups?offset=0&limit=500" }, - "totalCount" : 11 + "totalCount" : 3 } }, "SchemasResponseExample" : { "value" : { "items" : [ { "name" : "o-ran-smo-teiv-ran", - "domain" : [ "RAN_LOGICAL" ], - "revision" : "2013-07-15", + "domain" : "RAN", + "revision" : "2024-05-24", "content" : { "href" : "/schemas/o-ran-smo-teiv-ran/content" } }, { - "name" : "o-ran-smo-teiv-cloud", - "domain" : [ "RAN_CLOUD" ], - "revision" : "2021-05-19", + "name" : "o-ran-smo-teiv-equipment", + "domain" : "EQUIPMENT", + "revision" : "2024-05-24", "content" : { - "href" : "/schemas/o-ran-smo-teiv-cloud/content" + "href" : "/schemas/o-ran-smo-teiv-equipment/content" } }, { "name" : "o-ran-smo-teiv-oam", - "domain" : [ "RAN_OAM'" ], - "revision" : "2021-05-19", + "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" : "2021-07-04", + "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" : "2021-07-04", + "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" @@ -3311,20 +3227,20 @@ "href" : "/schemas?offset=0&limit=500" }, "next" : { - "href" : "/schemas?offset=500&limit=500" + "href" : "/schemas?offset=0&limit=500" }, "last" : { - "href" : "/schemas?offset=678&limit=500" + "href" : "/schemas?offset=0&limit=500" }, - "totalCount" : 14 + "totalCount" : 12 } }, "SchemaResponseExample" : { - "value" : "module stores {yang-version 1.1;namespace \"ietf-inet-types\";prefix module-references;revision \"2020-09-15\" {description\"Sample Model\";} typedef Mcc {type string;}typedef Mnc {type string;}grouping PLMNId {leaf mcc {type Mcc;}leaf mnc {type Mnc;}} container RAN_LOGICAL {leaf namespace {type string;}container GNBDUFunction {leaf eiid {type string;} leaf gNBDUId {type uint16;}leaf gNBID {type uint16;}leaf gNBIdLength {type uint16;}container dUpLMNId{description \"ToDo\";uses PLMNId;} }container GNBCUUPFunction {leaf eiid {type string;} leaf gNBID {type uint16;}leaf gNBIdLength {type uint16;}} container GNBCUCPFunction { leaf eiid {type string;} leaf gNBID {type uint16;}leaf gNBIdLength {type uint16;}leaf gNBCUName {type string;}container pLMNId{description \"ToDo\";uses PLMNId;} }container NRCellCU { leaf eiid {type string;} leaf cellLocalId {type uint16;}leaf nCI {type uint16;}leaf nRTAC {type uint16;}container plmnId{description \"ToDo\";uses PLMNId;} }container NRCellDU { leaf eiid {type string;} leaf cellLocalId {type uint16;}leaf nCI {type uint16;}leaf nRPCI {type uint16;}leaf nRTAC {type uint16;}}}}" + "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 GNBDUFunction {\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" } }, "parameters" : { - "acceptInHeader" : { + "acceptJsonInHeader" : { "explode" : false, "in" : "header", "name" : "Accept", @@ -3336,7 +3252,31 @@ }, "style" : "simple" }, - "contentTypeInHeader" : { + "acceptYangJsonInHeader" : { + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : true, + "schema" : { + "default" : "application/yang.data+json", + "example" : "application/yang.data+json", + "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", @@ -3397,10 +3337,10 @@ }, "style" : "simple" }, - "collectionIdInPath" : { + "groupIdInPath" : { "explode" : false, "in" : "path", - "name" : "collectionId", + "name" : "groupId", "required" : true, "schema" : { "type" : "string" @@ -3483,7 +3423,7 @@ "description" : "Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean.", "examples" : { "scopeFilter" : { - "value" : "/attributes[@nRTAC=310\"]" + "value" : "/attributes[@nRTAC=310]" } }, "explode" : true, @@ -3561,7 +3501,7 @@ "content" : { "application/problem+json" : { "example" : { - "status" : "409'", + "status" : "409", "title" : "Conflicting request", "details" : "The request cannot be processed as the resource is in use." }, @@ -3602,7 +3542,7 @@ "enum" : [ "merge", "delete" ], "type" : "string" }, - "classifier" : { + "classifiers" : { "items" : { "type" : "string" }, @@ -3624,23 +3564,23 @@ "title" : "Classifier", "type" : "object" }, - "CollectionResponse" : { + "GroupResponse" : { "properties" : { "id" : { "type" : "string" }, - "collectionName" : { + "groupName" : { "type" : "string" }, "criteria" : { - "$ref" : "#/components/schemas/CollectionResponse_criteria" + "$ref" : "#/components/schemas/GroupResponse_criteria" } }, "type" : "object" }, - "Collection" : { + "Group" : { "properties" : { - "collectionName" : { + "groupName" : { "type" : "string" }, "criteria" : { @@ -3649,11 +3589,11 @@ }, "type" : "object" }, - "Collections" : { + "Groups" : { "properties" : { "items" : { "items" : { - "$ref" : "#/components/schemas/CollectionResponse" + "$ref" : "#/components/schemas/GroupResponse" }, "type" : "array" }, @@ -3676,7 +3616,7 @@ "type" : "integer" } }, - "title" : "Collections", + "title" : "Groups", "type" : "object" }, "TopologySelection" : { @@ -3714,9 +3654,8 @@ "type" : "string" }, "decorators" : { - "additionalProperties" : { - "type" : "string" - }, + "additionalProperties" : true, + "description" : "Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema.", "type" : "object" }, "entityIds" : { @@ -3923,25 +3862,13 @@ "required" : [ "file" ], "type" : "object" }, - "QueryMessage" : { - "properties" : { - "query" : { - "type" : "string" - } - }, - "title" : "Query", - "type" : "object" - }, "Schema" : { "properties" : { "name" : { "type" : "string" }, "domain" : { - "items" : { - "type" : "string" - }, - "type" : "array" + "type" : "string" }, "revision" : { "type" : "string" @@ -3983,7 +3910,7 @@ "title" : "Schemas", "type" : "object" }, - "CollectionResponse_criteria" : { + "GroupResponse_criteria" : { "oneOf" : [ { "$ref" : "#/components/schemas/StaticSelection" }, { diff --git a/docs/offeredapis/topology-exposure-inventory-openapi.yaml b/docs/offeredapis/topology-exposure-inventory-openapi.yaml index a885dcc..782fcf8 100644 --- a/docs/offeredapis/topology-exposure-inventory-openapi.yaml +++ b/docs/offeredapis/topology-exposure-inventory-openapi.yaml @@ -24,41 +24,113 @@ info: x-api-id: 52812f69-83ac-4dfa-b83a-1a1bdf2d49b8 x-audience: external-public description: | - Topology and Inventory data is the information that represents entities in a telecommunications network and the relationships between them that provide insight into a particular aspect of the network of importance to specific use cases. Topology and Inventory data can be derived from inventory, configuration, or other data. + Topology Exposure and Inventory data is the information that represents entities + in a telecommunications network and the relationships between them that + provide insight into a particular aspect of the network of importance to + specific use cases. Topology and Inventory data can be derived from + inventory, configuration, or other data. - Topology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data. + Topology Exposure and Inventory supports several topology domains. A domain is a + grouping of topology and inventory entities that handles topology and + inventory data. - Entities are enabling the modelling and storage of complex network infrastructure and relationships. + Entities are enabling the modelling and storage of complex network + infrastructure and relationships. - Relationships are a uni-directional connection between two entities, one of which is the originating side (A-side) and the other is the terminating side (B-side). The order of the sides matters since it defines the relationship itself which must be unique + A relationship is a bi-directional connection between two entities, one + of which is the originating side (A-side) and the other is the + terminating side (B-side). The order of the sides matters since it + defines the relationship itself which must be unique. - Topology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests. + Classifier (also known as tag or label) permits the association of a + well defined user specified string with an entity or relationship. + + Decorators are user-defined attributes (key-value pairs) which can + be applied to topology entities and relationships. + + Topology Exposure and Inventory API provides the capabilities to fetch topology + data. Using the filtering options, it is possible to define more specific + query requests. ## Querying simple entities - EntityType is used as the root of the queries (from here referred as RootObject). Every other object, either *targetFilter* or *scopeFilter*, has to relate to the RootObject. The queries are constructed starting from the RootObject and all other objects are joined to it. If there is no connection between the RootObject and the other object(s), the query will not get constructed. The RootObject still can be retrieved and filtered using the */attributes*. + The *entityTypeName* is used as the root of the queries (from here + referred to as RootObject). Every other object, either in *targetFilter* or + *scopeFilter*, has to relate to the RootObject. The queries are + constructed starting from the RootObject and all other objects are joined + to it. If there is no connection between the RootObject and the other + object(s), the query is not constructed. The RootObject still can be + retrieved and filtered using the */attributes*. - | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | - |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------| - | To return the ids for all instances of the entityType used in the query. |  GNBDUFunction | | | All ids of every GNBDUFunction | - | To return all attributes of every instance of the entityType used in the query. |  GNBDUFunction |  /attributes | | All GNBDUFunctions with every attribute | - | To return every instance of the entityType 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. |  GNBDUFunction |  /attributes(gNBId)
       **OR**
    /attributes/gNBId | | All FDNs of every GNBDUFunction | - | To return every instance of the entityType used in the query, but only the attributes that were defined in the *targetFilter* parameter.
    Case 1: The attributes must be separated by a comma "," in case of using parenthesis "()".
    Case 2: The attributes must be separated by a semicolon ";" in case of using slash "/".
    Note: The attributes must be valid *targetFilter* of the object. |  GNBDUFunction |  /attributes(gNBId, gNBIdLength)
       **OR**
    /attributes/gNBId; /attributes/gNBIdLength | | All Ids and FDNs of every GNBDUFunction | - | To return the ids for all instances of the entityType used in the query, that matches the given attribute in the *scopeFilter* parameter.
    Note: The attribute must be a valid field of the object. |  GNBDUFunction | | /attributes[contains (@fdn, "/SubNetwork=Ireland/")] | Unique set of ids of GNBDUFunctions, where fdn contains "SubNetwork=Ireland" | - | To return the ids for all instances of the entityType used in the query, that matches the given attributes in the *scopeFilter* parameter.
    Note: the entityType and the object in the *scopeFilter* parameter must match, and the attributes must be valid field or fields of the object. The attributes must be separated by a comma ",". |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | - | To return the ids for all instances of the entityType used in the query, that satisfies every condition in one of the tags in the *scopeFilter* parameter. A tag is a complete unit of *scopeFilter* parameter surrounded by square brackets.
    Note: The attributes must be valid field or fields of the object. |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111]
       **OR**
    /attributes[@gNBIdLength=3 and @gNBId=112] | Unique set of ids of GNBDUFunctions, where where the gNBIdLength equals 3 and the gNBId is either 111 or 112 | + | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | + |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| + | To return the ids for all instances of the entityTypeName used in the query. | RAN | GNBDUFunction | | | All ids of every GNBDUFunction | + | To return all attributes of every instance of the entityTypeName used in the query. | RAN | GNBDUFunction | /attributes | | All GNBDUFunctions with every attribute | + | To return every instance of the entityTypeName used in the query, but only the attribute that was defined in the *targetFilter* parameter.
    Note: The attribute must be a valid field of the object. | RAN | GNBDUFunction | /attributes(gNBId) | | All gNBIds of every GNBDUFunction | + | To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the *targetFilter* parameter.
    Note: The attributes must be separated by a comma "," when using parenthesis "()". | RAN | GNBDUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every GNBDUFunction | + | To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the *scopeFilter* parameter. | RAN | GNBDUFunction | | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where sourceIds contains *SubNetwork=Ireland* | + | To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the *scopeFilter* parameter.
    Note: The attributes must be separated by a *AND* or *OR*". | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | + | To return the ids for all instances of the entityTypeName used in the query, that satisfies one of the conditions in the *scopeFilter* parameter. A condition is a complete unit of *scopeFilter* parameter surrounded by square brackets.
    Note: Multiple conditions can be given in the scopeFilter separated by a semicolon ";" to represent AND, or a pipe symbol "|" to represent OR. | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3] | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 or the sourceIds contains an item with "SubNetwork=Ireland" | ## Querying connected entities - It is possible to get information about directly connected objects as well. If entityType is present in the *targetFilter* parameter, the query provides information about that entityType itself. + The *entityTypeName* is used as the root of the queries. + + | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | + |:-----------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | To return the ids for all instances of an entityTypeName related by an association. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement | All ENodeBFunction entities that are managed by any Managed Element. | + | To return the ids for all instances of an entityTypeName related by an association to another entity specified by its *id*. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All ENodeBFunction entities that are managed by by the Managed Element *urn:3gpp:dn: ManagedElement=1*. | + | To return the attributes for all instances of an entityTypeName related by one or more associations to other entities specified by their *id*. | REL_OAM_RAN | ENodeBFunction | /attributes | /attributes [@enbId=1] ; /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as *1*, managed by the Managed Element *urn:3gpp:dn: ManagedElement=1* or *urn:3gpp:dn: ManagedElement=2*, and provides EuTranCell *urn:3gpp:dn: ManagedElement=1, EUtranCell=2*. | + + ## Querying entities for relationships + The *entityTypeName* is used as the root of the queries. + + | Use case | domainName | entityTypeName | entityId | targetFilter | scopeFilter | Query result | + |:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | To return the relationships for a given entity specified by its id. | RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | | All relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. | + | To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION | | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. | + | To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. | + + ## Querying on relationships + Here, the *relationshipTypeName* is used as the root of the queries. + + | Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result | + |:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------| + | To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. | + | To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association *managed-by-managedElement* to ManagedElement *urn:3gpp:dn: ManagedElement=1*. | + + ## Querying on classifiers and decorators + The *domainName* is used as the root of the queries. + + | Use case | domainName | targetFilter | scopeFilter | Query result | + |:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------| + | Return all related entity IDs that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'gnbdu-function-model:Indoor'] | All the entity IDs that are classified with "gnbdu-function-model:Indoor" in RAN domain. | + | Return all related entity IDs that are partially matched for the given classifier with given domain name. | RAN | | /classifiers[contains(@item, 'Ind')] | All the entity IDs that are partially matched with "Ind" in RAN domain. | + | Return all related entity IDs that are exactly matched with the key-value pair that specified decorators with given domain name. | RAN | | /decorators[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata = 'Stockholm'" in RAN domain. | + | Return all related entity IDs that are exactly matched with key parameter where the value of the decorator is unknown with given domain name. | RAN | | /decorators[contains(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. | - | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | - |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| - | To return the ids for all instances of the entityType in the *targetFilter* parameter, if they are directly related to the queried entityType. |  GNBDUFunction |  /NRCellDU | | Unique set of ids of NRCellDUs that relates to GNBDUFunctions directly with any relationship type | - | To return the ids for all instances of the entityTypes in the *targetFilter* parameter, if they are directly related to the entityType. |  GNBDUFunction |  /NRCellDU ;  /NRSectorCarrier | | Unique set of ids of NRCellDUs and NRSectorCarriers that relates to GNBDUFunctions directly with any relationship type | - | To return the ids for all instances of the queried entityType that has one or more direct relationships with the entityType specified in the *scopeFilter* parameter. |  GNBDUFunction | | /AntennaCapability | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability with any relationship type | - | To return the ids for all instances of the queried entityType that has one or more direct relationships with at least one of the entityTypes specified in the *scopeFilter* parameter. |  GNBDUFunction | | /AntennaCapability
       **OR**
    /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type | + The *entityName* is used as the root of the queries. + + | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | + |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Return all related entity IDs and classifiers. | NRCellDU | | /classifiers | | All NRCellDU IDs and classifiers. | + | Return all related entity IDs and decorators. | NRCellDU | | /decorators | | All NRCellDU IDs and decorators. | + | Return all related entity IDs that are exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-function-model:Indoor". | + | Return all related entity IDs and classifiers that are partially matched for the given classifier. | NRCellDU | | /classifiers | /classifiers[contains(@item, 'Ind')] | All NRCellDU IDs and classifiers partially contains the text "Ind". | + | Return all related entity IDs and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'. | + | Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU | | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind". | + + The *relationshipTypeName* is used as the root of the queries. + + | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | + |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Return all related relationships IDs and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers. | + | Return all related relationships IDs and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators. | + | Return all related relationship IDs that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". | + | Return all related relationships IDs and classifiers that are partially matched for the given classifier. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | /classifiers[contains(@item, 'Ind')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind". | + | Return all related relationships IDs and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'. | + | Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind". | version: 0.11.0 - title: Topology and Inventory API + title: Topology Exposure and Inventory API license: name: Copyright (C) 2024 Ericsson, Modifications Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. url: http://www.apache.org/licenses/LICENSE-2.0 @@ -69,13 +141,11 @@ tags: description: "Provides the capability to retrieve topology and inventory entities and relationships." - name: Schemas description: "Schemas are defined in YANG modeling language. A group of Yang schemas makes the topology and inventory model, which represents topology and inventory entities, their attributes, and their relationships. For more information on YANG modelling language, see [IETF Documentation](https://datatracker.ietf.org/doc/html/rfc6020)." - - name: Geo-query - description: "Provides the capability to perform geographical queries on topology entities." - name: Classifiers description: "Provides the capability to update or remove user-defined keywords or tags on entities and relationships." - name: Decorators description: "Provides the capability to update or remove user-defined values on entities and relationships." - - name: Collections + - name: Topology Groups description: "Provides the capability to group topology entities of any type, with an appropriate description and other criteria." servers: @@ -94,7 +164,7 @@ paths: summary: Get all the available topology domains. operationId: "getAllDomains" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' responses: @@ -124,7 +194,7 @@ paths: summary: Get all the available topology entity types in domain name. operationId: "getTopologyEntityTypes" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' @@ -155,7 +225,7 @@ paths: summary: Get all topology entities of a specific entity type. operationId: "getTopologyByEntityTypeName" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/entityTypeNameInPath' - $ref: '#/components/parameters/targetFilterOptionalInQuery' @@ -183,13 +253,15 @@ paths: /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}: get: - description: Get topology for entity type name with specified id. Specified id represents the entity instance. + description: Get topology for entity type name with specified id. + Specified id represents the entity instance. tags: - Entities and relationships - summary: Get topology for entity type name with specified id. Specified id represents the entity instance. + summary: Get topology for entity type name with specified id. Specified + id represents the entity instance. operationId: "getTopologyById" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptYangJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/entityTypeNameInPath' - $ref: '#/components/parameters/entityIdInPath' @@ -217,16 +289,20 @@ paths: /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships: get: - description: Get all relationships for entity type name with specified id. Specified id represents the entity instance. + description: Get all relationships for entity type name with specified + id. Specified id represents the entity instance. tags: - Entities and relationships - summary: Get all relationships for entity type name with specified id. Specified id represents the entity instance. + summary: Get all relationships for entity type name with specified id. + Specified id represents the entity instance. operationId: "getAllRelationshipsForEntityId" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/entityTypeNameInPath' - $ref: '#/components/parameters/entityIdInPath' + - $ref: '#/components/parameters/targetFilterOptionalInQuery' + - $ref: '#/components/parameters/scopeFilterOptionalInQuery' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' responses: @@ -258,7 +334,7 @@ paths: summary: Get all the available topology relationship types. operationId: "getTopologyRelationshipTypes" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' @@ -283,13 +359,14 @@ paths: /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships: get: - description: Get topology relationships of a specific relationship type name. + description: Get topology relationships of a specific relationship type + name. tags: - Entities and relationships summary: Get topology relationships of a specific relationship type name. operationId: "getRelationshipsByType" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/relationshipTypeNameInPath' - $ref: '#/components/parameters/targetFilterOptionalInQuery' @@ -317,13 +394,15 @@ paths: /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}: get: - description: Get relationship with specified id. Specified id represents the relationship instance. + description: Get relationship with specified id. Specified id + represents the relationship instance. tags: - Entities and relationships - summary: Get relationship with specified id. Specified id represents the relationship instance. + summary: Get relationship with specified id. Specified id represents + the relationship instance. operationId: "getRelationshipById" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptYangJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/relationshipTypeNameInPath' - $ref: '#/components/parameters/relationshipIdInPath' @@ -351,13 +430,14 @@ paths: /domains/{domainName}/entities: get: - description: Get topology entities by domain, using specified targetFilter as mandatory query parameter. + description: Get topology entities by domain, using specified + targetFilter as mandatory query parameter. tags: - Entities and relationships summary: "Get entities by domain" operationId: "getEntitiesByDomain" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/targetFilterOptionalInQuery' - $ref: '#/components/parameters/scopeFilterOptionalInQuery' @@ -384,14 +464,14 @@ paths: /schemas: post: - description: Create a new schema. + description: Create a new schema. The request body shall contain the schema in YANG format. tags: - Schemas summary: Create a new schema. operationId: createSchema parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeMultipartFileInHeader' requestBody: required: true content: @@ -419,7 +499,7 @@ paths: summary: Get a list of all schemas. operationId: getSchemas parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainOptionalInQuery' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' @@ -449,7 +529,7 @@ paths: summary: Get the model schema. operationId: getSchemaByName parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/schemaNameInPath' responses: '200': @@ -480,7 +560,7 @@ paths: summary: Delete a schema. operationId: deleteSchema parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/schemaNameInPath' responses: '204': @@ -494,58 +574,16 @@ paths: '500': $ref: '#/components/responses/InternalServerError' - /geo-queries: - post: - description: Geo query topology entity or entities across topology domains. - tags: - - Geo-query - summary: Geo query topology entity or entities across topology domains. - operationId: geoQueryTopologyAcrossDomains - parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' - - $ref: '#/components/parameters/offsetParam' - - $ref: '#/components/parameters/limitParam' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/QueryMessage' - examples: - geoQuery: - $ref: '#/components/examples/QueryMessageExample' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - examples: - geoQueryResponse: - $ref: '#/components/examples/QueryResponseExample' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '409': - $ref: '#/components/responses/Conflict' - '500': - $ref: '#/components/responses/InternalServerError' - /classifiers: - put: - description: Update entities and/or relationships with classifier(s). + post: + description: Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default. tags: - Classifiers summary: Update entities and/or relationships with classifier(s). operationId: updateClassifier parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' requestBody: required: true content: @@ -570,15 +608,15 @@ paths: $ref: '#/components/responses/InternalServerError' /decorators: - put: - description: Update entities and/or relationships with decorator(s). + post: + description: Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default. tags: - Decorators summary: Update entities and/or relationships with decorator(s). operationId: updateDecorator parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' requestBody: required: true content: @@ -602,37 +640,37 @@ paths: '500': $ref: '#/components/responses/InternalServerError' - /collections: + /groups: post: - description: Create a collection. + description: Create group. tags: - - Collections - summary: Create a collection. - operationId: createCollection + - Topology Groups + summary: Create group. + operationId: createGroup parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/Collection' + $ref: '#/components/schemas/Group' examples: - dynamicCollection: - $ref: '#/components/examples/DynamicCollectionExample' - staticCollection: - $ref: '#/components/examples/StaticCollectionExample' + dynamicGroup: + $ref: '#/components/examples/DynamicGroupExample' + staticGroup: + $ref: '#/components/examples/StaticGroupExample' responses: '201': description: Created content: application/json: schema: - $ref: '#/components/schemas/CollectionResponse' + $ref: '#/components/schemas/GroupResponse' examples: - collection: - $ref: '#/components/examples/CollectionResponseExample' + group: + $ref: '#/components/examples/GroupResponseExample' '400': $ref: '#/components/responses/BadRequest' '401': @@ -645,13 +683,13 @@ paths: $ref: '#/components/responses/InternalServerError' get: - description: Get all collections. + description: Get all groups. tags: - - Collections - summary: Get all collections. - operationId: "getAllCollections" + - Topology Groups + summary: Get all groups. + operationId: "getAllGroups" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' responses: @@ -660,10 +698,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Collections' + $ref: '#/components/schemas/Groups' examples: - collections: - $ref: '#/components/examples/CollectionsResponseExample' + groups: + $ref: '#/components/examples/GroupsResponseExample' '204': $ref: '#/components/responses/NoContent' '400': @@ -675,26 +713,26 @@ paths: '500': $ref: '#/components/responses/InternalServerError' - /collections/{collectionId}: + /groups/{groupId}: get: - description: Get a collection with specified id. + description: Get a Group with specified id. tags: - - Collections - summary: Get a collection with specified id. - operationId: "getCollection" + - Topology Groups + summary: Get a group with specified id. + operationId: "getGroup" parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/collectionIdInPath' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/groupIdInPath' responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/CollectionResponse' + $ref: '#/components/schemas/GroupResponse' examples: - collection: - $ref: '#/components/examples/CollectionResponseExample' + group: + $ref: '#/components/examples/GroupResponseExample' '400': $ref: '#/components/responses/BadRequest' '401': @@ -707,26 +745,26 @@ paths: $ref: '#/components/responses/InternalServerError' put: - description: Update a collection. + description: Update a Group. tags: - - Collections - summary: Update a collection. - operationId: updateCollection + - Topology Groups + summary: Update a Group. + operationId: updateGroup parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' - - $ref: '#/components/parameters/collectionIdInPath' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' + - $ref: '#/components/parameters/groupIdInPath' requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/Collection' + $ref: '#/components/schemas/Group' examples: - dynamicCollection: - $ref: '#/components/examples/DynamicCollectionExample' - staticCollection: - $ref: '#/components/examples/StaticCollectionExample' + dynamicGroup: + $ref: '#/components/examples/DynamicGroupExample' + staticGroup: + $ref: '#/components/examples/StaticGroupExample' responses: '204': $ref: '#/components/responses/NoContent' @@ -742,14 +780,14 @@ paths: $ref: '#/components/responses/InternalServerError' delete: - description: Delete a collection with specified id. + description: Delete a group with specified id. tags: - - Collections - summary: Delete a collection with specified id. - operationId: "deleteCollection" + - Topology Groups + summary: Delete a group with specified id. + operationId: "deleteGroup" parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/collectionIdInPath' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/groupIdInPath' responses: '204': $ref: '#/components/responses/NoContent' @@ -764,6 +802,7 @@ paths: '500': $ref: '#/components/responses/InternalServerError' + components: schemas: Classifier: @@ -773,9 +812,9 @@ components: operation: type: string enum: - - merge - - delete - classifier: + - merge + - delete + classifiers: type: array items: type: string @@ -787,32 +826,32 @@ components: type: array items: type: string - CollectionResponse: + GroupResponse: type: object properties: id: type: string - collectionName: + groupName: type: string criteria: oneOf: - - $ref: '#/components/schemas/StaticSelection' - - $ref: '#/components/schemas/DynamicSelection' - Collection: + - $ref: '#/components/schemas/StaticSelection' + - $ref: '#/components/schemas/DynamicSelection' + Group: type: object properties: - collectionName: + groupName: type: string criteria: $ref: '#/components/schemas/TopologySelection' - Collections: + Groups: type: object - title: Collections + title: Groups properties: items: type: array items: - $ref: '#/components/schemas/CollectionResponse' + $ref: '#/components/schemas/GroupResponse' self: $ref: '#/components/schemas/Href' first: @@ -827,8 +866,8 @@ components: type: integer TopologySelection: oneOf: - - $ref: '#/components/schemas/StaticSelection' - - $ref: '#/components/schemas/DynamicSelection' + - $ref: '#/components/schemas/StaticSelection' + - $ref: '#/components/schemas/DynamicSelection' StaticSelection: type: object properties: @@ -854,6 +893,7 @@ components: type: object required: - url + Decorator: type: object title: Decorator @@ -861,12 +901,12 @@ components: operation: type: string enum: - - merge - - delete + - merge + - delete decorators: type: object - additionalProperties: - type: string + additionalProperties: true + description: Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema. entityIds: type: array items: @@ -1019,12 +1059,6 @@ components: type: string description: multipartFile format: binary - QueryMessage: - type: object - title: Query - properties: - query: - type: string Schema: type: object title: Schema @@ -1032,9 +1066,7 @@ components: name: type: string domain: - type: array - items: - type: string + type: string revision: type: string content: @@ -1108,7 +1140,7 @@ components: schema: $ref: '#/components/schemas/ErrorMessage' example: - status: 409' + status: '409' title: Conflicting request details: The request cannot be processed as the resource is in use. Created: @@ -1118,7 +1150,7 @@ components: content: application/problem+json: schema: - $ref: "#/components/schemas/ErrorMessage" + $ref: '#/components/schemas/ErrorMessage' example: status: '500' title: Internal Server Error @@ -1128,7 +1160,7 @@ components: content: {} parameters: - acceptInHeader: + acceptJsonInHeader: name: Accept in: header required: true @@ -1136,7 +1168,23 @@ components: type: string example: application/json default: application/json - contentTypeInHeader: + acceptYangJsonInHeader: + name: Accept + in: header + required: true + schema: + type: string + example: application/yang.data+json + default: application/yang.data+json + contentTypeMultipartFileInHeader: + name: Content-Type + in: header + required: true + schema: + type: string + example: multipart/form-data + default: multipart/form-data + contentTypeJsonInHeader: name: Content-Type in: header required: true @@ -1177,8 +1225,8 @@ components: schema: type: string default: "o-ran-smo-teiv-ran" - collectionIdInPath: - name: collectionId + groupIdInPath: + name: groupId in: path required: true schema: @@ -1219,7 +1267,9 @@ components: value: ran targetFilterOptionalInQuery: name: targetFilter - description: Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. + description: Use *targetFilter* to specify the entity type and + attributes to be returned in the REST response. The value for + *targetFilter* can also be a list of entity types and attributes. in: query required: false schema: @@ -1229,458 +1279,454 @@ components: value: /attributes(nCI,nRPCI) scopeFilterOptionalInQuery: name: scopeFilter - description: Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. + description: Use *scopeFilter* to specify the attributes to match on. + The value for *scopeFilter* can also be a list of entity types and + attributes. scopeFilter returns a boolean. in: query required: false schema: type: string examples: scopeFilter: - value: /attributes[@nRTAC=310"] + value: /attributes[@nRTAC=310] examples: ClassifierExample: value: operation: merge classifiers: - - module-x:Outdoor - - module-y:Rural - - module-z:Weekend + - module-x:Outdoor + - module-y:Rural + - module-z:Weekend entityIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" relationshipIds: - - "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" + - "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" DecoratorExample: value: operation: merge decorators: - module-x:location : Stockholm + module-x:location: Stockholm module-y:vendor: Ericsson entityIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" relationshipIds: - - "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" + - "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" EntityResponseExample: value: o-ran-smo-teiv-ran:GNBDUFunction: - - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" - attributes: - gNBDUId: 11 - dUpLMNId: - mcc: 110 - mnc: 210 - gNBId: 21 - gNBIdLength: 2 - decorators: - location: Stockholm - classifiers: - - Rural - sourceIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" - - "urn:cmHandle:395221E080CCF0FD1924103B15873814" - metadata: - trustLevel: RELIABLE - EntitiesResponseExample: - value: - items: - - o-ran-smo-teiv-ran:NRCellDU: - - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - attributes: - cellLocalId: 4589 - nCI: 1 - nRPCI: 12 - nRTAC: 310 - decorators: - location: Stockholm - classifiers: - - Rural - sourceIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:cmHandle:395221E080CCF0FD1924103B15873814" - metadata: - trustLevel: RELIABLE - - o-ran-smo-teiv-ran:NRCellDU: - - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" attributes: - cellLocalId: 4559 - nRPCI: 32 - nRTAC: 510 + gNBDUId: 11 + dUpLMNId: + mcc: 110 + mnc: 210 + gNBId: 21 + gNBIdLength: 2 decorators: location: Stockholm classifiers: - - Rural + - Rural sourceIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:cmHandle:395221E080CCF0FD1924103B15873814" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" + - "urn:cmHandle:395221E080CCF0FD1924103B15873814" metadata: trustLevel: RELIABLE + EntitiesResponseExample: + value: + items: + - o-ran-smo-teiv-ran:NRCellDU: + - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + attributes: + cellLocalId: 4589 + nCI: 1 + nRPCI: 12 + nRTAC: 310 + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:cmHandle:395221E080CCF0FD1924103B15873814" + metadata: + trustLevel: RELIABLE + - o-ran-smo-teiv-ran:NRCellDU: + - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + attributes: + cellLocalId: 4559 + nRPCI: 32 + nRTAC: 510 + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:cmHandle:395221E080CCF0FD1924103B15873814" + metadata: + trustLevel: RELIABLE self: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" first: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" prev: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" next: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=500&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=500&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" last: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=678&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=678&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" totalCount: 12 RelationshipResponseExample: value: o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: - - id: "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" - aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1" - decorators: - location: Stockholm - classifiers: - - Rural - sourceIds: [] - metadata: - trustLevel: RELIABLE - - RelationshipsResponseExample: - value: - items: - - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: - - id: "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmVs=" + - id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1" decorators: location: Stockholm classifiers: - - Rural - sourceIds: [] - metadata: - trustLevel: RELIABLE - - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: - - id: "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmVsYW5kLE1lQ2=" - aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=2" - decorators: - location: Stockholm - classifiers: - - Rural + - Rural sourceIds: [] metadata: trustLevel: RELIABLE + + RelationshipsResponseExample: + value: + items: + - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: + - id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" + aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1" + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: [] + metadata: + trustLevel: RELIABLE + - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: + - id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=11AB21444F9D7C6DAC7453879AB5586D294B495E43AC6F94750767DD624014DB7317E9A5EE73239876649D801037D6347355B19C5D97222B3C25000CF8A97C78" + aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=2" + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: [] + metadata: + trustLevel: RELIABLE self: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500' + 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' + 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' + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500" next: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=500&limit=500' + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=500&limit=500" last: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=678&limit=500' + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=678&limit=500" totalCount: 23 EntityTypesResponseExample: value: items: - - name: GNBCUUPFunction - entities: - href: '/domains/RAN/entity-types/GNBCUUPFunction/entities' - - name: NRCellDU - entities: - href: '/domains/RAN/entity-types/NRCellDU/entities' - - name: GNBDUFunction - entities: - href: '/domains/RAN/entity-types/GNBDUFunction/entities' + - name: "GNBCUUPFunction" + entities: + href: "/domains/RAN/entity-types/GNBCUUPFunction/entities" + - name: "NRCellDU" + entities: + href: "/domains/RAN/entity-types/NRCellDU/entities" + - name: "GNBDUFunction" + entities: + href: "/domains/RAN/entity-types/GNBDUFunction/entities" self: - href: '/domains/RAN/entity-types?offset=0&limit=500' + href: "/domains/RAN/entity-types?offset=0&limit=500" first: - href: '/domains/RAN/entity-types?offset=0&limit=500' + href: "/domains/RAN/entity-types?offset=0&limit=500" prev: - href: '/domains/RAN/entity-types?offset=0&limit=500' + href: "/domains/RAN/entity-types?offset=0&limit=500" next: - href: '/domains/RAN/entity-types?offset=500&limit=500' + href: "/domains/RAN/entity-types?offset=500&limit=500" last: - href: '/domains/RAN/entity-types?offset=678&limit=500' + href: "/domains/RAN/entity-types?offset=678&limit=500" totalCount: 43 RelationshipTypesResponseExample: value: items: - - name: MANAGEDELEMENT_MANAGES_GNBDUFUNCTION - relationships: - href: '/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_GNBDUFUNCTION/relationships' - - name: GNBDUFUNCTION_PROVIDES_NRCELLDU - relationships: - href: '/domains/RAN/relationship-types/GNBDUFUNCTION_PROVIDES_NRCELLDU/relationships' - - name: NRCELLDU_USES_NRSECTORCARRIER - relationships: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships' + - name: "MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" + relationships: + href: "/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_GNBDUFUNCTION/relationships" + - name: "GNBDUFUNCTION_PROVIDES_NRCELLDU" + relationships: + href: "/domains/RAN/relationship-types/GNBDUFUNCTION_PROVIDES_NRCELLDU/relationships" + - name: "NRCELLDU_USES_NRSECTORCARRIER" + relationships: + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships" self: - href: '/domains/RAN/relationship-types?offset=0&limit=500' + href: "/domains/RAN/relationship-types?offset=0&limit=500" first: - href: '/domains/RAN/relationship-types?offset=0&limit=500' + href: "/domains/RAN/relationship-types?offset=0&limit=500" prev: - href: '/domains/RAN/relationship-types?offset=0&limit=500' + href: "/domains/RAN/relationship-types?offset=0&limit=500" next: - href: '/domains/RAN/relationship-types?offset=500&limit=500' + href: "/domains/RAN/relationship-types?offset=500&limit=500" last: - href: '/domains/RAN/relationship-types?offset=678&limit=500' + href: "/domains/RAN/relationship-types?offset=678&limit=500" totalCount: 21 DomainsResponseExample: value: items: - - name: RAN_CLOUD - entityTypes: - href: '/domains/CLOUD/entity-types' - relationshipTypes: - href: '/domains/CLOUD/relationship-types' - - name: RAN_OAM - entityTypes: - href: '/domains/OAM/entity-types' - relationshipTypes: - href: '/domains/OAM/relationship-types' - - name: RAN_LOGICAL - entityTypes: - href: '/domains/RAN/entity-types' - relationshipTypes: - href: '/domains/RAN/relationship-types' + - name: "EQUIPMENT" + entityTypes: + href: "/domains/EQUIPMENT/entity-types" + relationshipTypes: + href: "/domains/EQUIPMENT/relationship-types" + - name: "OAM" + entityTypes: + href: "/domains/OAM/entity-types" + relationshipTypes: + href: "/domains/OAM/relationship-types" + - name: "RAN" + entityTypes: + href: "/domains/RAN/entity-types" + relationshipTypes: + href: "/domains/RAN/relationship-types" self: - href: '/domains?offset=0&limit=500' + href: "/domains?offset=0&limit=500" first: - href: '/domains?offset=0&limit=500' + href: "/domains?offset=0&limit=500" prev: - href: '/domains?offset=0&limit=500' + href: "/domains?offset=0&limit=500" next: - href: '/domains?offset=500&limit=500' + href: "/domains?offset=500&limit=500" last: - href: '/domains?offset=678&limit=500' + href: "/domains?offset=678&limit=500" totalCount: 343 - QueryMessageExample: - value: - query: |- - WITH point({longitude: 12.78232, latitude: 56.7455}) AS p1, point({latitude: 56.7134, longitude: 12.79565}) AS p2 RETURN point.distance(p1, p2) AS distance - QueryResponseExample: - value: - query: |- - WITH point({longitude: 12.78232, latitude: 56.7455}) AS p1, point({latitude: 56.7134, longitude: 12.79565}) AS p2 RETURN point.distance(p1, p2) AS distance - response: "distance : 2873.5" - - StaticCollectionExample: + StaticGroupExample: value: - collectionName: "son-cell-filter-group-1" + groupName: "son-cell-filter-group-1" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" - DynamicCollectionExample: + DynamicGroupExample: value: - collectionName: "son-cell-filter-group-1" + groupName: "son-cell-filter-group-1" criteria: resourceQuery: url: /domains/RAN/entity-types/NRCellDU/entities method: GET queryParams: - target:Filter: /attributes(cmId) + target:Filter: /sourceIds scopeFilter: /attributes[@nRTAC=310] requestBody: "" - CollectionResponseExample: + GroupResponseExample: value: - id: "urn:oran:collection:/JHKJ4H5JH45345TB=" - collectionName: "son-cell-filter-group-1" + id: "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB=" + groupName: "son-cell-filter-group-1" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" - CollectionsResponseExample: + GroupsResponseExample: value: items: - - id: "urn:topology:collection:/JHKJ4H5JH45345TB=" - collectionName: "son-cell-group-1" + - id: "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB=" + groupName: "son-cell-group-1" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" - - id: "urn:topology:collection:/DFJER77R6F7S9VD=" - collectionName: "son-cell-group-2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" + - id: "urn:o-ran:smo:teiv:group:/DFJER77R6F7S9VD=" + groupName: "son-cell-group-2" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=4" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=5" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=6" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=4" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=5" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=6" + - id: "urn:o-ran:smo:teiv:group:/LMND77R6F7S9VD=" + groupName: "son-cell-group-3" + criteria: + resourceQuery: + url: /domains/RAN/entity-types/NRCellDU/entities + method: GET + queryParams: + target:Filter: /sourceIds + scopeFilter: /attributes[@nRTAC=310] + requestBody: "" self: - href: '/collections?offset=0&limit=500' + href: "/groups?offset=0&limit=500" first: - href: '/collections?offset=0&limit=500' + href: "/groups?offset=0&limit=500" prev: - href: '/collections?offset=0&limit=500' + href: "/groups?offset=0&limit=500" next: - href: '/collections?offset=500&limit=500' + href: "/groups?offset=0&limit=500" last: - href: '/collections?offset=678&limit=500' - totalCount: 11 + href: "/groups?offset=0&limit=500" + totalCount: 3 SchemasResponseExample: value: items: - - name: o-ran-smo-teiv-ran - domain: - - RAN_LOGICAL - revision: '2013-07-15' + - 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-ran/content' - - name: o-ran-smo-teiv-cloud - domain: - - RAN_CLOUD - revision: '2021-05-19' + 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-cloud/content' - - name: o-ran-smo-teiv-oam - domain: - - RAN_OAM' - revision: '2021-05-19' + 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-oam/content' - - name: o-ran-smo-teiv-common-yang-types - domain: - [] - revision: '2021-07-04' + 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-common-yang-types/content' - - name: o-ran-smo-teiv-common-yang-extensions - domain: - [] - revision: '2021-07-04' + 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-extensions/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' + href: "/schemas?offset=0&limit=500" first: - href: '/schemas?offset=0&limit=500' + href: "/schemas?offset=0&limit=500" prev: - href: '/schemas?offset=0&limit=500' + href: "/schemas?offset=0&limit=500" next: - href: '/schemas?offset=500&limit=500' + href: "/schemas?offset=0&limit=500" last: - href: '/schemas?offset=678&limit=500' - totalCount: 14 + href: "/schemas?offset=0&limit=500" + totalCount: 12 SchemaResponseExample: - value: "module stores {\ - yang-version 1.1;\ - namespace \"ietf-inet-types\";\ - prefix module-references;\ - revision \"2020-09-15\" {\ - description\ - \"Sample Model\";\ - } \ - typedef Mcc {\ - type string;\ - }\ - typedef Mnc {\ - type string;\ - }\ - grouping PLMNId {\ - leaf mcc {\ - type Mcc;\ - }\ - leaf mnc {\ - type Mnc;\ - }\ - } \ - container RAN_LOGICAL {\ - leaf namespace {\ - type string;\ - }\ - container GNBDUFunction {\ - leaf eiid {\ - type string;\ - } \ - leaf gNBDUId {\ - type uint16;\ - }\ - leaf gNBID {\ - type uint16;\ - }\ - leaf gNBIdLength {\ - type uint16;\ - }\ - container dUpLMNId{\ - description \"ToDo\";\ - uses PLMNId;\ - } \ - }\ - container GNBCUUPFunction {\ - leaf eiid {\ - type string;\ - } \ - leaf gNBID {\ - type uint16;\ - }\ - leaf gNBIdLength {\ - type uint16;\ - }\ - } \ - container GNBCUCPFunction { \ - leaf eiid {\ - type string;\ - } \ - leaf gNBID {\ - type uint16;\ - }\ - leaf gNBIdLength {\ - type uint16;\ - }\ - leaf gNBCUName {\ - type string;\ - }\ - container pLMNId{\ - description \"ToDo\";\ - uses PLMNId;\ - } \ - }\ - container NRCellCU { \ - leaf eiid {\ - type string;\ - } \ - leaf cellLocalId {\ - type uint16;\ - }\ - leaf nCI {\ - type uint16;\ - }\ - leaf nRTAC {\ - type uint16;\ - }\ - container plmnId{\ - description \"ToDo\";\ - uses PLMNId;\ - } \ - }\ - container NRCellDU { \ - leaf eiid {\ - type string;\ - } \ - leaf cellLocalId {\ - type uint16;\ - }\ - leaf nCI {\ - type uint16;\ - }\ - leaf nRPCI {\ - type uint16;\ - }\ - leaf nRTAC {\ - type uint16;\ - }\ - }\ - }\ -}" + value: | + module o-ran-smo-teiv-ran { + yang-version 1.1; + namespace "urn:o-ran:smo-teiv-ran"; + prefix or-teiv-ran; + import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; } + import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; } + import _3gpp-common-yang-types { prefix types3gpp; } + organization "ORAN"; + description + "Sample Model."; + revision "2024-05-24" { + description "Initial revision." + or-teiv-yext:label 0.1.0; + } + or-teiv-yext:domain RAN; + list GNBDUFunction { + uses or-teiv-types:Top_Grp_Type; + key id; + container attributes { + container dUpLMNId { + uses types3gpp:PLMNId; + } + leaf gNBDUId { + type uint32; + } + leaf gNBId { + type uint32; + } + leaf gNBIdLength { + type uint32; + } + } + } + list NRCellDU { + uses or-teiv-types:Top_Grp_Type; + key id; + container attributes { + leaf cellLocalId { + type uint32; + } + leaf nCI { + type uint32; + } + leaf nRPCI { + type uint32; + } + leaf nRTAC { + type uint32; + } + } + } + list NRSectorCarrier { + uses or-teiv-types:Top_Grp_Type; + key id; + container attributes { + leaf arfcnDL { + type uint32; + } + leaf arfcnUL { + type uint32; + } + leaf frequencyDL { + type uint32; + } + leaf frequencyUL { + type uint32; + } + leaf bSChannelBwDL { + type uint32; + } + } + } + } diff --git a/teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/CollectionsRestController.java b/teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/TopologyGroupsRestController.java similarity index 91% rename from teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/CollectionsRestController.java rename to teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/TopologyGroupsRestController.java index 2a06663..d4d8cd2 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/CollectionsRestController.java +++ b/teiv/src/main/java/org/oran/smo/teiv/exposure/collection/rest/controller/TopologyGroupsRestController.java @@ -20,7 +20,7 @@ */ package org.oran.smo.teiv.exposure.collection.rest.controller; -import org.oran.smo.teiv.api.CollectionsApi; +import org.oran.smo.teiv.api.TopologyGroupsApi; import org.oran.smo.teiv.utils.TiesConstants; import org.springframework.web.bind.annotation.RequestMapping; @@ -28,6 +28,6 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(TiesConstants.REQUEST_MAPPING) -public class CollectionsRestController implements CollectionsApi { +public class TopologyGroupsRestController implements TopologyGroupsApi { } diff --git a/teiv/src/main/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestController.java b/teiv/src/main/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestController.java index b4cc9c3..f5f1705 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestController.java +++ b/teiv/src/main/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestController.java @@ -152,7 +152,8 @@ public class DataRestController implements EntitiesAndRelationshipsApi { @Override @Timed("ties_exposure_http_get_relationships_by_entity_id_seconds") public ResponseEntity getAllRelationshipsForEntityId(@NotNull final String accept, - final String domain, final String entityType, final String id, @Min(0) @Valid final Integer offset, + final String domain, final String entityType, final String id, @Valid final String targetFilter, + @Valid final String scopeFilter, @Min(0) @Valid final Integer offset, @Min(1) @Max(500) @Valid final Integer limit) { return runWithFailCheck(() -> { requestValidator.validateDomain(domain); diff --git a/teiv/src/main/java/org/oran/smo/teiv/exposure/geography/rest/controller/GeoQueryRestController.java b/teiv/src/main/java/org/oran/smo/teiv/exposure/geography/rest/controller/GeoQueryRestController.java deleted file mode 100644 index 6e6426c..0000000 --- a/teiv/src/main/java/org/oran/smo/teiv/exposure/geography/rest/controller/GeoQueryRestController.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2024 Ericsson - * Modifications Copyright (C) 2024 OpenInfra Foundation Europe - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ -package org.oran.smo.teiv.exposure.geography.rest.controller; - -import org.oran.smo.teiv.api.GeoQueryApi; -import org.oran.smo.teiv.utils.TiesConstants; - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping(TiesConstants.REQUEST_MAPPING) -public class GeoQueryRestController implements GeoQueryApi { - -} diff --git a/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java b/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java index 2e4df8c..af20fbb 100644 --- a/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java +++ b/teiv/src/main/java/org/oran/smo/teiv/utils/YangParser.java @@ -106,11 +106,11 @@ public class YangParser { final AbstractStatement moduleOrSubmodule = yangModel.getYangModelRoot().getModuleOrSubmodule(); final AbstractStatement domainStatement = moduleOrSubmodule.getChild(new StatementModuleAndName( "o-ran-smo-teiv-common-yang-extensions", "domain")); - List values = new ArrayList<>(); + String value = new String(); if (domainStatement != null && domainStatement.getDomElement() != null) { - values = List.of(domainStatement.getDomElement().getValue().split(",")); + value = domainStatement.getDomElement().getValue(); } - schemasMetaData.setDomain(values); + schemasMetaData.setDomain(value); if (schemasMetaData.getDomain() != null) { OranTeivSchemasMetaData.add(schemasMetaData); diff --git a/teiv/src/main/resources/v1/topology-exposure-inventory-openapi.yaml b/teiv/src/main/resources/v1/topology-exposure-inventory-openapi.yaml index a885dcc..782fcf8 100644 --- a/teiv/src/main/resources/v1/topology-exposure-inventory-openapi.yaml +++ b/teiv/src/main/resources/v1/topology-exposure-inventory-openapi.yaml @@ -24,41 +24,113 @@ info: x-api-id: 52812f69-83ac-4dfa-b83a-1a1bdf2d49b8 x-audience: external-public description: | - Topology and Inventory data is the information that represents entities in a telecommunications network and the relationships between them that provide insight into a particular aspect of the network of importance to specific use cases. Topology and Inventory data can be derived from inventory, configuration, or other data. + Topology Exposure and Inventory data is the information that represents entities + in a telecommunications network and the relationships between them that + provide insight into a particular aspect of the network of importance to + specific use cases. Topology and Inventory data can be derived from + inventory, configuration, or other data. - Topology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data. + Topology Exposure and Inventory supports several topology domains. A domain is a + grouping of topology and inventory entities that handles topology and + inventory data. - Entities are enabling the modelling and storage of complex network infrastructure and relationships. + Entities are enabling the modelling and storage of complex network + infrastructure and relationships. - Relationships are a uni-directional connection between two entities, one of which is the originating side (A-side) and the other is the terminating side (B-side). The order of the sides matters since it defines the relationship itself which must be unique + A relationship is a bi-directional connection between two entities, one + of which is the originating side (A-side) and the other is the + terminating side (B-side). The order of the sides matters since it + defines the relationship itself which must be unique. - Topology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests. + Classifier (also known as tag or label) permits the association of a + well defined user specified string with an entity or relationship. + + Decorators are user-defined attributes (key-value pairs) which can + be applied to topology entities and relationships. + + Topology Exposure and Inventory API provides the capabilities to fetch topology + data. Using the filtering options, it is possible to define more specific + query requests. ## Querying simple entities - EntityType is used as the root of the queries (from here referred as RootObject). Every other object, either *targetFilter* or *scopeFilter*, has to relate to the RootObject. The queries are constructed starting from the RootObject and all other objects are joined to it. If there is no connection between the RootObject and the other object(s), the query will not get constructed. The RootObject still can be retrieved and filtered using the */attributes*. + The *entityTypeName* is used as the root of the queries (from here + referred to as RootObject). Every other object, either in *targetFilter* or + *scopeFilter*, has to relate to the RootObject. The queries are + constructed starting from the RootObject and all other objects are joined + to it. If there is no connection between the RootObject and the other + object(s), the query is not constructed. The RootObject still can be + retrieved and filtered using the */attributes*. - | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | - |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------| - | To return the ids for all instances of the entityType used in the query. |  GNBDUFunction | | | All ids of every GNBDUFunction | - | To return all attributes of every instance of the entityType used in the query. |  GNBDUFunction |  /attributes | | All GNBDUFunctions with every attribute | - | To return every instance of the entityType 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. |  GNBDUFunction |  /attributes(gNBId)
       **OR**
    /attributes/gNBId | | All FDNs of every GNBDUFunction | - | To return every instance of the entityType used in the query, but only the attributes that were defined in the *targetFilter* parameter.
    Case 1: The attributes must be separated by a comma "," in case of using parenthesis "()".
    Case 2: The attributes must be separated by a semicolon ";" in case of using slash "/".
    Note: The attributes must be valid *targetFilter* of the object. |  GNBDUFunction |  /attributes(gNBId, gNBIdLength)
       **OR**
    /attributes/gNBId; /attributes/gNBIdLength | | All Ids and FDNs of every GNBDUFunction | - | To return the ids for all instances of the entityType used in the query, that matches the given attribute in the *scopeFilter* parameter.
    Note: The attribute must be a valid field of the object. |  GNBDUFunction | | /attributes[contains (@fdn, "/SubNetwork=Ireland/")] | Unique set of ids of GNBDUFunctions, where fdn contains "SubNetwork=Ireland" | - | To return the ids for all instances of the entityType used in the query, that matches the given attributes in the *scopeFilter* parameter.
    Note: the entityType and the object in the *scopeFilter* parameter must match, and the attributes must be valid field or fields of the object. The attributes must be separated by a comma ",". |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | - | To return the ids for all instances of the entityType used in the query, that satisfies every condition in one of the tags in the *scopeFilter* parameter. A tag is a complete unit of *scopeFilter* parameter surrounded by square brackets.
    Note: The attributes must be valid field or fields of the object. |  GNBDUFunction | | /attributes[@gNBIdLength=3 and @gNBId=111]
       **OR**
    /attributes[@gNBIdLength=3 and @gNBId=112] | Unique set of ids of GNBDUFunctions, where where the gNBIdLength equals 3 and the gNBId is either 111 or 112 | + | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | + |:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:---------------|:--------------------------------|:----------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------| + | To return the ids for all instances of the entityTypeName used in the query. | RAN | GNBDUFunction | | | All ids of every GNBDUFunction | + | To return all attributes of every instance of the entityTypeName used in the query. | RAN | GNBDUFunction | /attributes | | All GNBDUFunctions with every attribute | + | To return every instance of the entityTypeName used in the query, but only the attribute that was defined in the *targetFilter* parameter.
    Note: The attribute must be a valid field of the object. | RAN | GNBDUFunction | /attributes(gNBId) | | All gNBIds of every GNBDUFunction | + | To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the *targetFilter* parameter.
    Note: The attributes must be separated by a comma "," when using parenthesis "()". | RAN | GNBDUFunction | /attributes(gNBId, gNBIdLength) | | All gNBIds and gNBIdLengths of every GNBDUFunction | + | To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the *scopeFilter* parameter. | RAN | GNBDUFunction | | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where sourceIds contains *SubNetwork=Ireland* | + | To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the *scopeFilter* parameter.
    Note: The attributes must be separated by a *AND* or *OR*". | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3 and @gNBId=111] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111 | + | To return the ids for all instances of the entityTypeName used in the query, that satisfies one of the conditions in the *scopeFilter* parameter. A condition is a complete unit of *scopeFilter* parameter surrounded by square brackets.
    Note: Multiple conditions can be given in the scopeFilter separated by a semicolon ";" to represent AND, or a pipe symbol "|" to represent OR. | RAN | GNBDUFunction | | /attributes [@gNBIdLength=3] | /sourceIds[contains (@item, 'SubNetwork=Ireland')] | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 or the sourceIds contains an item with "SubNetwork=Ireland" | ## Querying connected entities - It is possible to get information about directly connected objects as well. If entityType is present in the *targetFilter* parameter, the query provides information about that entityType itself. + The *entityTypeName* is used as the root of the queries. + + | Use case | domainName | entityTypeName | targetFilter | scopeFilter | Query result | + |:-----------------------------------------------------------------------------------------------------------------------------------------------|-------------|:---------------|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | To return the ids for all instances of an entityTypeName related by an association. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement | All ENodeBFunction entities that are managed by any Managed Element. | + | To return the ids for all instances of an entityTypeName related by an association to another entity specified by its *id*. | REL_OAM_RAN | ENodeBFunction | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All ENodeBFunction entities that are managed by by the Managed Element *urn:3gpp:dn: ManagedElement=1*. | + | To return the attributes for all instances of an entityTypeName related by one or more associations to other entities specified by their *id*. | REL_OAM_RAN | ENodeBFunction | /attributes | /attributes [@enbId=1] ; /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as *1*, managed by the Managed Element *urn:3gpp:dn: ManagedElement=1* or *urn:3gpp:dn: ManagedElement=2*, and provides EuTranCell *urn:3gpp:dn: ManagedElement=1, EUtranCell=2*. | + + ## Querying entities for relationships + The *entityTypeName* is used as the root of the queries. + + | Use case | domainName | entityTypeName | entityId | targetFilter | scopeFilter | Query result | + |:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | To return the relationships for a given entity specified by its id. | RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | | All relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. | + | To return specific relationships for a given entity specified by its id. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION | | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*. | + | To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. | + + ## Querying on relationships + Here, the *relationshipTypeName* is used as the root of the queries. + + | Use case | domainName | relationshipTypeName | targetFilter | scopeFilter | Query result | + |:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------| + | To return all relationships for a specified relationship type. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships. | + | To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association *managed-by-managedElement* to ManagedElement *urn:3gpp:dn: ManagedElement=1*. | + + ## Querying on classifiers and decorators + The *domainName* is used as the root of the queries. + + | Use case | domainName | targetFilter | scopeFilter | Query result | + |:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------| + | Return all related entity IDs that are exactly matched with the specified classifier with given domain name. | RAN | | /classifiers[@item = 'gnbdu-function-model:Indoor'] | All the entity IDs that are classified with "gnbdu-function-model:Indoor" in RAN domain. | + | Return all related entity IDs that are partially matched for the given classifier with given domain name. | RAN | | /classifiers[contains(@item, 'Ind')] | All the entity IDs that are partially matched with "Ind" in RAN domain. | + | Return all related entity IDs that are exactly matched with the key-value pair that specified decorators with given domain name. | RAN | | /decorators[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata = 'Stockholm'" in RAN domain. | + | Return all related entity IDs that are exactly matched with key parameter where the value of the decorator is unknown with given domain name. | RAN | | /decorators[contains(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. | - | USE CASE | ENTITY TYPE | TARGET FILTER | SCOPE FILTER | QUERY RESULT | - |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| - | To return the ids for all instances of the entityType in the *targetFilter* parameter, if they are directly related to the queried entityType. |  GNBDUFunction |  /NRCellDU | | Unique set of ids of NRCellDUs that relates to GNBDUFunctions directly with any relationship type | - | To return the ids for all instances of the entityTypes in the *targetFilter* parameter, if they are directly related to the entityType. |  GNBDUFunction |  /NRCellDU ;  /NRSectorCarrier | | Unique set of ids of NRCellDUs and NRSectorCarriers that relates to GNBDUFunctions directly with any relationship type | - | To return the ids for all instances of the queried entityType that has one or more direct relationships with the entityType specified in the *scopeFilter* parameter. |  GNBDUFunction | | /AntennaCapability | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability with any relationship type | - | To return the ids for all instances of the queried entityType that has one or more direct relationships with at least one of the entityTypes specified in the *scopeFilter* parameter. |  GNBDUFunction | | /AntennaCapability
       **OR**
    /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type | + The *entityName* is used as the root of the queries. + + | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | + |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Return all related entity IDs and classifiers. | NRCellDU | | /classifiers | | All NRCellDU IDs and classifiers. | + | Return all related entity IDs and decorators. | NRCellDU | | /decorators | | All NRCellDU IDs and decorators. | + | Return all related entity IDs that are exact match for the given classifiers and decorators. | NRCellDU | | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-function-model:Indoor". | + | Return all related entity IDs and classifiers that are partially matched for the given classifier. | NRCellDU | | /classifiers | /classifiers[contains(@item, 'Ind')] | All NRCellDU IDs and classifiers partially contains the text "Ind". | + | Return all related entity IDs and decorators where key is a exact match and value is partially match. | NRCellDU | | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'. | + | Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU | | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')] | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind". | + + The *relationshipTypeName* is used as the root of the queries. + + | Use case | entityName | relationshipTypeName | targetFilter | scopeFilter | Query result | + |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Return all related relationships IDs and classifiers. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers. | + | Return all related relationships IDs and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators. | + | Return all related relationship IDs that are exact match for the given classifier and decorators. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". | + | Return all related relationships IDs and classifiers that are partially matched for the given classifier. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers | /classifiers[contains(@item, 'Ind')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind". | + | Return all related relationships IDs and decorators where key is a exact match and value is partially match. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'. | + | Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')] | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind". | version: 0.11.0 - title: Topology and Inventory API + title: Topology Exposure and Inventory API license: name: Copyright (C) 2024 Ericsson, Modifications Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. url: http://www.apache.org/licenses/LICENSE-2.0 @@ -69,13 +141,11 @@ tags: description: "Provides the capability to retrieve topology and inventory entities and relationships." - name: Schemas description: "Schemas are defined in YANG modeling language. A group of Yang schemas makes the topology and inventory model, which represents topology and inventory entities, their attributes, and their relationships. For more information on YANG modelling language, see [IETF Documentation](https://datatracker.ietf.org/doc/html/rfc6020)." - - name: Geo-query - description: "Provides the capability to perform geographical queries on topology entities." - name: Classifiers description: "Provides the capability to update or remove user-defined keywords or tags on entities and relationships." - name: Decorators description: "Provides the capability to update or remove user-defined values on entities and relationships." - - name: Collections + - name: Topology Groups description: "Provides the capability to group topology entities of any type, with an appropriate description and other criteria." servers: @@ -94,7 +164,7 @@ paths: summary: Get all the available topology domains. operationId: "getAllDomains" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' responses: @@ -124,7 +194,7 @@ paths: summary: Get all the available topology entity types in domain name. operationId: "getTopologyEntityTypes" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' @@ -155,7 +225,7 @@ paths: summary: Get all topology entities of a specific entity type. operationId: "getTopologyByEntityTypeName" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/entityTypeNameInPath' - $ref: '#/components/parameters/targetFilterOptionalInQuery' @@ -183,13 +253,15 @@ paths: /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}: get: - description: Get topology for entity type name with specified id. Specified id represents the entity instance. + description: Get topology for entity type name with specified id. + Specified id represents the entity instance. tags: - Entities and relationships - summary: Get topology for entity type name with specified id. Specified id represents the entity instance. + summary: Get topology for entity type name with specified id. Specified + id represents the entity instance. operationId: "getTopologyById" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptYangJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/entityTypeNameInPath' - $ref: '#/components/parameters/entityIdInPath' @@ -217,16 +289,20 @@ paths: /domains/{domainName}/entity-types/{entityTypeName}/entities/{entityId}/relationships: get: - description: Get all relationships for entity type name with specified id. Specified id represents the entity instance. + description: Get all relationships for entity type name with specified + id. Specified id represents the entity instance. tags: - Entities and relationships - summary: Get all relationships for entity type name with specified id. Specified id represents the entity instance. + summary: Get all relationships for entity type name with specified id. + Specified id represents the entity instance. operationId: "getAllRelationshipsForEntityId" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/entityTypeNameInPath' - $ref: '#/components/parameters/entityIdInPath' + - $ref: '#/components/parameters/targetFilterOptionalInQuery' + - $ref: '#/components/parameters/scopeFilterOptionalInQuery' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' responses: @@ -258,7 +334,7 @@ paths: summary: Get all the available topology relationship types. operationId: "getTopologyRelationshipTypes" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' @@ -283,13 +359,14 @@ paths: /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships: get: - description: Get topology relationships of a specific relationship type name. + description: Get topology relationships of a specific relationship type + name. tags: - Entities and relationships summary: Get topology relationships of a specific relationship type name. operationId: "getRelationshipsByType" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/relationshipTypeNameInPath' - $ref: '#/components/parameters/targetFilterOptionalInQuery' @@ -317,13 +394,15 @@ paths: /domains/{domainName}/relationship-types/{relationshipTypeName}/relationships/{relationshipId}: get: - description: Get relationship with specified id. Specified id represents the relationship instance. + description: Get relationship with specified id. Specified id + represents the relationship instance. tags: - Entities and relationships - summary: Get relationship with specified id. Specified id represents the relationship instance. + summary: Get relationship with specified id. Specified id represents + the relationship instance. operationId: "getRelationshipById" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptYangJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/relationshipTypeNameInPath' - $ref: '#/components/parameters/relationshipIdInPath' @@ -351,13 +430,14 @@ paths: /domains/{domainName}/entities: get: - description: Get topology entities by domain, using specified targetFilter as mandatory query parameter. + description: Get topology entities by domain, using specified + targetFilter as mandatory query parameter. tags: - Entities and relationships summary: "Get entities by domain" operationId: "getEntitiesByDomain" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainNameInPath' - $ref: '#/components/parameters/targetFilterOptionalInQuery' - $ref: '#/components/parameters/scopeFilterOptionalInQuery' @@ -384,14 +464,14 @@ paths: /schemas: post: - description: Create a new schema. + description: Create a new schema. The request body shall contain the schema in YANG format. tags: - Schemas summary: Create a new schema. operationId: createSchema parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeMultipartFileInHeader' requestBody: required: true content: @@ -419,7 +499,7 @@ paths: summary: Get a list of all schemas. operationId: getSchemas parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/domainOptionalInQuery' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' @@ -449,7 +529,7 @@ paths: summary: Get the model schema. operationId: getSchemaByName parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/schemaNameInPath' responses: '200': @@ -480,7 +560,7 @@ paths: summary: Delete a schema. operationId: deleteSchema parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/schemaNameInPath' responses: '204': @@ -494,58 +574,16 @@ paths: '500': $ref: '#/components/responses/InternalServerError' - /geo-queries: - post: - description: Geo query topology entity or entities across topology domains. - tags: - - Geo-query - summary: Geo query topology entity or entities across topology domains. - operationId: geoQueryTopologyAcrossDomains - parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' - - $ref: '#/components/parameters/offsetParam' - - $ref: '#/components/parameters/limitParam' - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/QueryMessage' - examples: - geoQuery: - $ref: '#/components/examples/QueryMessageExample' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - examples: - geoQueryResponse: - $ref: '#/components/examples/QueryResponseExample' - '400': - $ref: '#/components/responses/BadRequest' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '409': - $ref: '#/components/responses/Conflict' - '500': - $ref: '#/components/responses/InternalServerError' - /classifiers: - put: - description: Update entities and/or relationships with classifier(s). + post: + description: Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default. tags: - Classifiers summary: Update entities and/or relationships with classifier(s). operationId: updateClassifier parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' requestBody: required: true content: @@ -570,15 +608,15 @@ paths: $ref: '#/components/responses/InternalServerError' /decorators: - put: - description: Update entities and/or relationships with decorator(s). + post: + description: Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default. tags: - Decorators summary: Update entities and/or relationships with decorator(s). operationId: updateDecorator parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' requestBody: required: true content: @@ -602,37 +640,37 @@ paths: '500': $ref: '#/components/responses/InternalServerError' - /collections: + /groups: post: - description: Create a collection. + description: Create group. tags: - - Collections - summary: Create a collection. - operationId: createCollection + - Topology Groups + summary: Create group. + operationId: createGroup parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/Collection' + $ref: '#/components/schemas/Group' examples: - dynamicCollection: - $ref: '#/components/examples/DynamicCollectionExample' - staticCollection: - $ref: '#/components/examples/StaticCollectionExample' + dynamicGroup: + $ref: '#/components/examples/DynamicGroupExample' + staticGroup: + $ref: '#/components/examples/StaticGroupExample' responses: '201': description: Created content: application/json: schema: - $ref: '#/components/schemas/CollectionResponse' + $ref: '#/components/schemas/GroupResponse' examples: - collection: - $ref: '#/components/examples/CollectionResponseExample' + group: + $ref: '#/components/examples/GroupResponseExample' '400': $ref: '#/components/responses/BadRequest' '401': @@ -645,13 +683,13 @@ paths: $ref: '#/components/responses/InternalServerError' get: - description: Get all collections. + description: Get all groups. tags: - - Collections - summary: Get all collections. - operationId: "getAllCollections" + - Topology Groups + summary: Get all groups. + operationId: "getAllGroups" parameters: - - $ref: '#/components/parameters/acceptInHeader' + - $ref: '#/components/parameters/acceptJsonInHeader' - $ref: '#/components/parameters/offsetParam' - $ref: '#/components/parameters/limitParam' responses: @@ -660,10 +698,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Collections' + $ref: '#/components/schemas/Groups' examples: - collections: - $ref: '#/components/examples/CollectionsResponseExample' + groups: + $ref: '#/components/examples/GroupsResponseExample' '204': $ref: '#/components/responses/NoContent' '400': @@ -675,26 +713,26 @@ paths: '500': $ref: '#/components/responses/InternalServerError' - /collections/{collectionId}: + /groups/{groupId}: get: - description: Get a collection with specified id. + description: Get a Group with specified id. tags: - - Collections - summary: Get a collection with specified id. - operationId: "getCollection" + - Topology Groups + summary: Get a group with specified id. + operationId: "getGroup" parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/collectionIdInPath' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/groupIdInPath' responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/CollectionResponse' + $ref: '#/components/schemas/GroupResponse' examples: - collection: - $ref: '#/components/examples/CollectionResponseExample' + group: + $ref: '#/components/examples/GroupResponseExample' '400': $ref: '#/components/responses/BadRequest' '401': @@ -707,26 +745,26 @@ paths: $ref: '#/components/responses/InternalServerError' put: - description: Update a collection. + description: Update a Group. tags: - - Collections - summary: Update a collection. - operationId: updateCollection + - Topology Groups + summary: Update a Group. + operationId: updateGroup parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/contentTypeInHeader' - - $ref: '#/components/parameters/collectionIdInPath' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/contentTypeJsonInHeader' + - $ref: '#/components/parameters/groupIdInPath' requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/Collection' + $ref: '#/components/schemas/Group' examples: - dynamicCollection: - $ref: '#/components/examples/DynamicCollectionExample' - staticCollection: - $ref: '#/components/examples/StaticCollectionExample' + dynamicGroup: + $ref: '#/components/examples/DynamicGroupExample' + staticGroup: + $ref: '#/components/examples/StaticGroupExample' responses: '204': $ref: '#/components/responses/NoContent' @@ -742,14 +780,14 @@ paths: $ref: '#/components/responses/InternalServerError' delete: - description: Delete a collection with specified id. + description: Delete a group with specified id. tags: - - Collections - summary: Delete a collection with specified id. - operationId: "deleteCollection" + - Topology Groups + summary: Delete a group with specified id. + operationId: "deleteGroup" parameters: - - $ref: '#/components/parameters/acceptInHeader' - - $ref: '#/components/parameters/collectionIdInPath' + - $ref: '#/components/parameters/acceptJsonInHeader' + - $ref: '#/components/parameters/groupIdInPath' responses: '204': $ref: '#/components/responses/NoContent' @@ -764,6 +802,7 @@ paths: '500': $ref: '#/components/responses/InternalServerError' + components: schemas: Classifier: @@ -773,9 +812,9 @@ components: operation: type: string enum: - - merge - - delete - classifier: + - merge + - delete + classifiers: type: array items: type: string @@ -787,32 +826,32 @@ components: type: array items: type: string - CollectionResponse: + GroupResponse: type: object properties: id: type: string - collectionName: + groupName: type: string criteria: oneOf: - - $ref: '#/components/schemas/StaticSelection' - - $ref: '#/components/schemas/DynamicSelection' - Collection: + - $ref: '#/components/schemas/StaticSelection' + - $ref: '#/components/schemas/DynamicSelection' + Group: type: object properties: - collectionName: + groupName: type: string criteria: $ref: '#/components/schemas/TopologySelection' - Collections: + Groups: type: object - title: Collections + title: Groups properties: items: type: array items: - $ref: '#/components/schemas/CollectionResponse' + $ref: '#/components/schemas/GroupResponse' self: $ref: '#/components/schemas/Href' first: @@ -827,8 +866,8 @@ components: type: integer TopologySelection: oneOf: - - $ref: '#/components/schemas/StaticSelection' - - $ref: '#/components/schemas/DynamicSelection' + - $ref: '#/components/schemas/StaticSelection' + - $ref: '#/components/schemas/DynamicSelection' StaticSelection: type: object properties: @@ -854,6 +893,7 @@ components: type: object required: - url + Decorator: type: object title: Decorator @@ -861,12 +901,12 @@ components: operation: type: string enum: - - merge - - delete + - merge + - delete decorators: type: object - additionalProperties: - type: string + additionalProperties: true + description: Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema. entityIds: type: array items: @@ -1019,12 +1059,6 @@ components: type: string description: multipartFile format: binary - QueryMessage: - type: object - title: Query - properties: - query: - type: string Schema: type: object title: Schema @@ -1032,9 +1066,7 @@ components: name: type: string domain: - type: array - items: - type: string + type: string revision: type: string content: @@ -1108,7 +1140,7 @@ components: schema: $ref: '#/components/schemas/ErrorMessage' example: - status: 409' + status: '409' title: Conflicting request details: The request cannot be processed as the resource is in use. Created: @@ -1118,7 +1150,7 @@ components: content: application/problem+json: schema: - $ref: "#/components/schemas/ErrorMessage" + $ref: '#/components/schemas/ErrorMessage' example: status: '500' title: Internal Server Error @@ -1128,7 +1160,7 @@ components: content: {} parameters: - acceptInHeader: + acceptJsonInHeader: name: Accept in: header required: true @@ -1136,7 +1168,23 @@ components: type: string example: application/json default: application/json - contentTypeInHeader: + acceptYangJsonInHeader: + name: Accept + in: header + required: true + schema: + type: string + example: application/yang.data+json + default: application/yang.data+json + contentTypeMultipartFileInHeader: + name: Content-Type + in: header + required: true + schema: + type: string + example: multipart/form-data + default: multipart/form-data + contentTypeJsonInHeader: name: Content-Type in: header required: true @@ -1177,8 +1225,8 @@ components: schema: type: string default: "o-ran-smo-teiv-ran" - collectionIdInPath: - name: collectionId + groupIdInPath: + name: groupId in: path required: true schema: @@ -1219,7 +1267,9 @@ components: value: ran targetFilterOptionalInQuery: name: targetFilter - description: Use *targetFilter* to specify the entity type and attributes to be returned in the REST response. The value for *targetFilter* can also be a list of entity types and attributes. + description: Use *targetFilter* to specify the entity type and + attributes to be returned in the REST response. The value for + *targetFilter* can also be a list of entity types and attributes. in: query required: false schema: @@ -1229,458 +1279,454 @@ components: value: /attributes(nCI,nRPCI) scopeFilterOptionalInQuery: name: scopeFilter - description: Use *scopeFilter* to specify the attributes to match on. The value for *scopeFilter* can also be a list of entity types and attributes. scopeFilter returns a boolean. + description: Use *scopeFilter* to specify the attributes to match on. + The value for *scopeFilter* can also be a list of entity types and + attributes. scopeFilter returns a boolean. in: query required: false schema: type: string examples: scopeFilter: - value: /attributes[@nRTAC=310"] + value: /attributes[@nRTAC=310] examples: ClassifierExample: value: operation: merge classifiers: - - module-x:Outdoor - - module-y:Rural - - module-z:Weekend + - module-x:Outdoor + - module-y:Rural + - module-z:Weekend entityIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" relationshipIds: - - "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" + - "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" DecoratorExample: value: operation: merge decorators: - module-x:location : Stockholm + module-x:location: Stockholm module-y:vendor: Ericsson entityIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" relationshipIds: - - "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" + - "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" EntityResponseExample: value: o-ran-smo-teiv-ran:GNBDUFunction: - - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" - attributes: - gNBDUId: 11 - dUpLMNId: - mcc: 110 - mnc: 210 - gNBId: 21 - gNBIdLength: 2 - decorators: - location: Stockholm - classifiers: - - Rural - sourceIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" - - "urn:cmHandle:395221E080CCF0FD1924103B15873814" - metadata: - trustLevel: RELIABLE - EntitiesResponseExample: - value: - items: - - o-ran-smo-teiv-ran:NRCellDU: - - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - attributes: - cellLocalId: 4589 - nCI: 1 - nRPCI: 12 - nRTAC: 310 - decorators: - location: Stockholm - classifiers: - - Rural - sourceIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:cmHandle:395221E080CCF0FD1924103B15873814" - metadata: - trustLevel: RELIABLE - - o-ran-smo-teiv-ran:NRCellDU: - - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" attributes: - cellLocalId: 4559 - nRPCI: 32 - nRTAC: 510 + gNBDUId: 11 + dUpLMNId: + mcc: 110 + mnc: 210 + gNBId: 21 + gNBIdLength: 2 decorators: location: Stockholm classifiers: - - Rural + - Rural sourceIds: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:cmHandle:395221E080CCF0FD1924103B15873814" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1" + - "urn:cmHandle:395221E080CCF0FD1924103B15873814" metadata: trustLevel: RELIABLE + EntitiesResponseExample: + value: + items: + - o-ran-smo-teiv-ran:NRCellDU: + - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + attributes: + cellLocalId: 4589 + nCI: 1 + nRPCI: 12 + nRTAC: 310 + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:cmHandle:395221E080CCF0FD1924103B15873814" + metadata: + trustLevel: RELIABLE + - o-ran-smo-teiv-ran:NRCellDU: + - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + attributes: + cellLocalId: 4559 + nRPCI: 32 + nRTAC: 510 + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:cmHandle:395221E080CCF0FD1924103B15873814" + metadata: + trustLevel: RELIABLE self: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" first: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" prev: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=0&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" next: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=500&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=500&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" last: - href: '/domains/RAN/entity-types/NRCellDU/entities?offset=678&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]' + href: "/domains/RAN/entity-types/NRCellDU/entities?offset=678&limit=500&targetFilter=attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]" totalCount: 12 RelationshipResponseExample: value: o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: - - id: "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmV=" - aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1" - decorators: - location: Stockholm - classifiers: - - Rural - sourceIds: [] - metadata: - trustLevel: RELIABLE - - RelationshipsResponseExample: - value: - items: - - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: - - id: "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmVs=" + - id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1" decorators: location: Stockholm classifiers: - - Rural - sourceIds: [] - metadata: - trustLevel: RELIABLE - - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: - - id: "urn:sha512:TlJDZWxsRFU6U3ViTmV0d29yaz1FdXJvcGUsU3ViTmV0d29yaz1JcmVsYW5kLE1lQ2=" - aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=2" - decorators: - location: Stockholm - classifiers: - - Rural + - Rural sourceIds: [] metadata: trustLevel: RELIABLE + + RelationshipsResponseExample: + value: + items: + - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: + - id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=CA576F4716C36A1BD1C506DCB58418FC731858D3D3F856F536813A8C4D3F1CC21292E506815410E04496D709D96066EBC0E4890DEFC3789EDC4BD9C28DA1D52B" + aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=1" + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: [] + metadata: + trustLevel: RELIABLE + - o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER: + - id: "urn:o-ran:smo:teiv:sha512:NRCELLDU_USES_NRSECTORCARRIER=11AB21444F9D7C6DAC7453879AB5586D294B495E43AC6F94750767DD624014DB7317E9A5EE73239876649D801037D6347355B19C5D97222B3C25000CF8A97C78" + aSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + bSide: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRSectorCarrier=2" + decorators: + location: Stockholm + classifiers: + - Rural + sourceIds: [] + metadata: + trustLevel: RELIABLE self: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500' + 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' + 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' + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=0&limit=500" next: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=500&limit=500' + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=500&limit=500" last: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=678&limit=500' + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships?offset=678&limit=500" totalCount: 23 EntityTypesResponseExample: value: items: - - name: GNBCUUPFunction - entities: - href: '/domains/RAN/entity-types/GNBCUUPFunction/entities' - - name: NRCellDU - entities: - href: '/domains/RAN/entity-types/NRCellDU/entities' - - name: GNBDUFunction - entities: - href: '/domains/RAN/entity-types/GNBDUFunction/entities' + - name: "GNBCUUPFunction" + entities: + href: "/domains/RAN/entity-types/GNBCUUPFunction/entities" + - name: "NRCellDU" + entities: + href: "/domains/RAN/entity-types/NRCellDU/entities" + - name: "GNBDUFunction" + entities: + href: "/domains/RAN/entity-types/GNBDUFunction/entities" self: - href: '/domains/RAN/entity-types?offset=0&limit=500' + href: "/domains/RAN/entity-types?offset=0&limit=500" first: - href: '/domains/RAN/entity-types?offset=0&limit=500' + href: "/domains/RAN/entity-types?offset=0&limit=500" prev: - href: '/domains/RAN/entity-types?offset=0&limit=500' + href: "/domains/RAN/entity-types?offset=0&limit=500" next: - href: '/domains/RAN/entity-types?offset=500&limit=500' + href: "/domains/RAN/entity-types?offset=500&limit=500" last: - href: '/domains/RAN/entity-types?offset=678&limit=500' + href: "/domains/RAN/entity-types?offset=678&limit=500" totalCount: 43 RelationshipTypesResponseExample: value: items: - - name: MANAGEDELEMENT_MANAGES_GNBDUFUNCTION - relationships: - href: '/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_GNBDUFUNCTION/relationships' - - name: GNBDUFUNCTION_PROVIDES_NRCELLDU - relationships: - href: '/domains/RAN/relationship-types/GNBDUFUNCTION_PROVIDES_NRCELLDU/relationships' - - name: NRCELLDU_USES_NRSECTORCARRIER - relationships: - href: '/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships' + - name: "MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" + relationships: + href: "/domains/RAN/relationship-types/MANAGEDELEMENT_MANAGES_GNBDUFUNCTION/relationships" + - name: "GNBDUFUNCTION_PROVIDES_NRCELLDU" + relationships: + href: "/domains/RAN/relationship-types/GNBDUFUNCTION_PROVIDES_NRCELLDU/relationships" + - name: "NRCELLDU_USES_NRSECTORCARRIER" + relationships: + href: "/domains/RAN/relationship-types/NRCELLDU_USES_NRSECTORCARRIER/relationships" self: - href: '/domains/RAN/relationship-types?offset=0&limit=500' + href: "/domains/RAN/relationship-types?offset=0&limit=500" first: - href: '/domains/RAN/relationship-types?offset=0&limit=500' + href: "/domains/RAN/relationship-types?offset=0&limit=500" prev: - href: '/domains/RAN/relationship-types?offset=0&limit=500' + href: "/domains/RAN/relationship-types?offset=0&limit=500" next: - href: '/domains/RAN/relationship-types?offset=500&limit=500' + href: "/domains/RAN/relationship-types?offset=500&limit=500" last: - href: '/domains/RAN/relationship-types?offset=678&limit=500' + href: "/domains/RAN/relationship-types?offset=678&limit=500" totalCount: 21 DomainsResponseExample: value: items: - - name: RAN_CLOUD - entityTypes: - href: '/domains/CLOUD/entity-types' - relationshipTypes: - href: '/domains/CLOUD/relationship-types' - - name: RAN_OAM - entityTypes: - href: '/domains/OAM/entity-types' - relationshipTypes: - href: '/domains/OAM/relationship-types' - - name: RAN_LOGICAL - entityTypes: - href: '/domains/RAN/entity-types' - relationshipTypes: - href: '/domains/RAN/relationship-types' + - name: "EQUIPMENT" + entityTypes: + href: "/domains/EQUIPMENT/entity-types" + relationshipTypes: + href: "/domains/EQUIPMENT/relationship-types" + - name: "OAM" + entityTypes: + href: "/domains/OAM/entity-types" + relationshipTypes: + href: "/domains/OAM/relationship-types" + - name: "RAN" + entityTypes: + href: "/domains/RAN/entity-types" + relationshipTypes: + href: "/domains/RAN/relationship-types" self: - href: '/domains?offset=0&limit=500' + href: "/domains?offset=0&limit=500" first: - href: '/domains?offset=0&limit=500' + href: "/domains?offset=0&limit=500" prev: - href: '/domains?offset=0&limit=500' + href: "/domains?offset=0&limit=500" next: - href: '/domains?offset=500&limit=500' + href: "/domains?offset=500&limit=500" last: - href: '/domains?offset=678&limit=500' + href: "/domains?offset=678&limit=500" totalCount: 343 - QueryMessageExample: - value: - query: |- - WITH point({longitude: 12.78232, latitude: 56.7455}) AS p1, point({latitude: 56.7134, longitude: 12.79565}) AS p2 RETURN point.distance(p1, p2) AS distance - QueryResponseExample: - value: - query: |- - WITH point({longitude: 12.78232, latitude: 56.7455}) AS p1, point({latitude: 56.7134, longitude: 12.79565}) AS p2 RETURN point.distance(p1, p2) AS distance - response: "distance : 2873.5" - - StaticCollectionExample: + StaticGroupExample: value: - collectionName: "son-cell-filter-group-1" + groupName: "son-cell-filter-group-1" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" - DynamicCollectionExample: + DynamicGroupExample: value: - collectionName: "son-cell-filter-group-1" + groupName: "son-cell-filter-group-1" criteria: resourceQuery: url: /domains/RAN/entity-types/NRCellDU/entities method: GET queryParams: - target:Filter: /attributes(cmId) + target:Filter: /sourceIds scopeFilter: /attributes[@nRTAC=310] requestBody: "" - CollectionResponseExample: + GroupResponseExample: value: - id: "urn:oran:collection:/JHKJ4H5JH45345TB=" - collectionName: "son-cell-filter-group-1" + id: "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB=" + groupName: "son-cell-filter-group-1" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" - CollectionsResponseExample: + GroupsResponseExample: value: items: - - id: "urn:topology:collection:/JHKJ4H5JH45345TB=" - collectionName: "son-cell-group-1" + - id: "urn:o-ran:smo:teiv:group:/JHKJ4H5JH45345TB=" + groupName: "son-cell-group-1" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" - - id: "urn:topology:collection:/DFJER77R6F7S9VD=" - collectionName: "son-cell-group-2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=3" + - id: "urn:o-ran:smo:teiv:group:/DFJER77R6F7S9VD=" + groupName: "son-cell-group-2" criteria: resourceInstances: - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=4" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=5" - - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=6" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=4" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=5" + - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=6" + - id: "urn:o-ran:smo:teiv:group:/LMND77R6F7S9VD=" + groupName: "son-cell-group-3" + criteria: + resourceQuery: + url: /domains/RAN/entity-types/NRCellDU/entities + method: GET + queryParams: + target:Filter: /sourceIds + scopeFilter: /attributes[@nRTAC=310] + requestBody: "" self: - href: '/collections?offset=0&limit=500' + href: "/groups?offset=0&limit=500" first: - href: '/collections?offset=0&limit=500' + href: "/groups?offset=0&limit=500" prev: - href: '/collections?offset=0&limit=500' + href: "/groups?offset=0&limit=500" next: - href: '/collections?offset=500&limit=500' + href: "/groups?offset=0&limit=500" last: - href: '/collections?offset=678&limit=500' - totalCount: 11 + href: "/groups?offset=0&limit=500" + totalCount: 3 SchemasResponseExample: value: items: - - name: o-ran-smo-teiv-ran - domain: - - RAN_LOGICAL - revision: '2013-07-15' + - 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-ran/content' - - name: o-ran-smo-teiv-cloud - domain: - - RAN_CLOUD - revision: '2021-05-19' + 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-cloud/content' - - name: o-ran-smo-teiv-oam - domain: - - RAN_OAM' - revision: '2021-05-19' + 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-oam/content' - - name: o-ran-smo-teiv-common-yang-types - domain: - [] - revision: '2021-07-04' + 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-common-yang-types/content' - - name: o-ran-smo-teiv-common-yang-extensions - domain: - [] - revision: '2021-07-04' + 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-extensions/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' + href: "/schemas?offset=0&limit=500" first: - href: '/schemas?offset=0&limit=500' + href: "/schemas?offset=0&limit=500" prev: - href: '/schemas?offset=0&limit=500' + href: "/schemas?offset=0&limit=500" next: - href: '/schemas?offset=500&limit=500' + href: "/schemas?offset=0&limit=500" last: - href: '/schemas?offset=678&limit=500' - totalCount: 14 + href: "/schemas?offset=0&limit=500" + totalCount: 12 SchemaResponseExample: - value: "module stores {\ - yang-version 1.1;\ - namespace \"ietf-inet-types\";\ - prefix module-references;\ - revision \"2020-09-15\" {\ - description\ - \"Sample Model\";\ - } \ - typedef Mcc {\ - type string;\ - }\ - typedef Mnc {\ - type string;\ - }\ - grouping PLMNId {\ - leaf mcc {\ - type Mcc;\ - }\ - leaf mnc {\ - type Mnc;\ - }\ - } \ - container RAN_LOGICAL {\ - leaf namespace {\ - type string;\ - }\ - container GNBDUFunction {\ - leaf eiid {\ - type string;\ - } \ - leaf gNBDUId {\ - type uint16;\ - }\ - leaf gNBID {\ - type uint16;\ - }\ - leaf gNBIdLength {\ - type uint16;\ - }\ - container dUpLMNId{\ - description \"ToDo\";\ - uses PLMNId;\ - } \ - }\ - container GNBCUUPFunction {\ - leaf eiid {\ - type string;\ - } \ - leaf gNBID {\ - type uint16;\ - }\ - leaf gNBIdLength {\ - type uint16;\ - }\ - } \ - container GNBCUCPFunction { \ - leaf eiid {\ - type string;\ - } \ - leaf gNBID {\ - type uint16;\ - }\ - leaf gNBIdLength {\ - type uint16;\ - }\ - leaf gNBCUName {\ - type string;\ - }\ - container pLMNId{\ - description \"ToDo\";\ - uses PLMNId;\ - } \ - }\ - container NRCellCU { \ - leaf eiid {\ - type string;\ - } \ - leaf cellLocalId {\ - type uint16;\ - }\ - leaf nCI {\ - type uint16;\ - }\ - leaf nRTAC {\ - type uint16;\ - }\ - container plmnId{\ - description \"ToDo\";\ - uses PLMNId;\ - } \ - }\ - container NRCellDU { \ - leaf eiid {\ - type string;\ - } \ - leaf cellLocalId {\ - type uint16;\ - }\ - leaf nCI {\ - type uint16;\ - }\ - leaf nRPCI {\ - type uint16;\ - }\ - leaf nRTAC {\ - type uint16;\ - }\ - }\ - }\ -}" + value: | + module o-ran-smo-teiv-ran { + yang-version 1.1; + namespace "urn:o-ran:smo-teiv-ran"; + prefix or-teiv-ran; + import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; } + import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; } + import _3gpp-common-yang-types { prefix types3gpp; } + organization "ORAN"; + description + "Sample Model."; + revision "2024-05-24" { + description "Initial revision." + or-teiv-yext:label 0.1.0; + } + or-teiv-yext:domain RAN; + list GNBDUFunction { + uses or-teiv-types:Top_Grp_Type; + key id; + container attributes { + container dUpLMNId { + uses types3gpp:PLMNId; + } + leaf gNBDUId { + type uint32; + } + leaf gNBId { + type uint32; + } + leaf gNBIdLength { + type uint32; + } + } + } + list NRCellDU { + uses or-teiv-types:Top_Grp_Type; + key id; + container attributes { + leaf cellLocalId { + type uint32; + } + leaf nCI { + type uint32; + } + leaf nRPCI { + type uint32; + } + leaf nRTAC { + type uint32; + } + } + } + list NRSectorCarrier { + uses or-teiv-types:Top_Grp_Type; + key id; + container attributes { + leaf arfcnDL { + type uint32; + } + leaf arfcnUL { + type uint32; + } + leaf frequencyDL { + type uint32; + } + leaf frequencyUL { + type uint32; + } + leaf bSChannelBwDL { + type uint32; + } + } + } + } diff --git a/teiv/src/test/java/org/oran/smo/teiv/e2e/DataControllerE2EContainerizedNonXPathTest.java b/teiv/src/test/java/org/oran/smo/teiv/e2e/DataControllerE2EContainerizedNonXPathTest.java index 705faea..d6dea51 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/e2e/DataControllerE2EContainerizedNonXPathTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/e2e/DataControllerE2EContainerizedNonXPathTest.java @@ -266,14 +266,14 @@ public class DataControllerE2EContainerizedNonXPathTest { @Test public void testGetAllRelationshipsForEntityId() { final OranTeivRelationshipsResponseMessage responseMessage = underTest.getAllRelationshipsForEntityId(ACCEPT_TYPE, - "RAN", "Sector", "2F445AA5744FA3D230FD6838531F1407", 0, 10).getBody(); + "RAN", "Sector", "2F445AA5744FA3D230FD6838531F1407", "", "", 0, 10).getBody(); Assertions.assertNotNull(responseMessage); Assertions.assertEquals(0, responseMessage.getTotalCount()); Assertions.assertTrue(responseMessage.getItems().isEmpty()); final OranTeivRelationshipsResponseMessage responseMessage2 = underTest.getAllRelationshipsForEntityId(ACCEPT_TYPE, - "RAN", "GNBDUFunction", "1050570EBB1315E1AE7A9FD5E1400A00", 0, 10).getBody(); + "RAN", "GNBDUFunction", "1050570EBB1315E1AE7A9FD5E1400A00", "", "", 0, 10).getBody(); Assertions.assertNotNull(responseMessage2); Assertions.assertEquals(1, responseMessage2.getTotalCount()); diff --git a/teiv/src/test/java/org/oran/smo/teiv/exposure/api/contract/TopologyExposureApiBase.java b/teiv/src/test/java/org/oran/smo/teiv/exposure/api/contract/TopologyExposureApiBase.java index 29d38ce..44360ee 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/exposure/api/contract/TopologyExposureApiBase.java +++ b/teiv/src/test/java/org/oran/smo/teiv/exposure/api/contract/TopologyExposureApiBase.java @@ -83,7 +83,7 @@ public abstract class TopologyExposureApiBase { OranTeivHref href = new OranTeivHref(); href.setHref("/schemas/o-ran-smo-teiv-cloud-to-ran/content"); schemasMetaData.setName("o-ran-smo-teiv-cloud-to-ran"); - schemasMetaData.setDomain(List.of("RAN", "CLOUD")); + schemasMetaData.setDomain("CLOUD_TO_RAN"); schemasMetaData.setRevision("2023-06-26"); schemasMetaData.setContent(href); diff --git a/teiv/src/test/java/org/oran/smo/teiv/exposure/data/api/impl/ExposureMetricsTest.java b/teiv/src/test/java/org/oran/smo/teiv/exposure/data/api/impl/ExposureMetricsTest.java index 7abf88c..7c8904f 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/exposure/data/api/impl/ExposureMetricsTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/exposure/data/api/impl/ExposureMetricsTest.java @@ -70,7 +70,7 @@ public class ExposureMetricsTest { when(mockedDataService.getAllRelationshipsForObjectId(eq(ENTITY_NAME), eq(ENTITY_ID), any(PaginationDTO.class))) .thenThrow(TiesException.class); assertMetrics(() -> dataRestController.getAllRelationshipsForEntityId(ACCEPT_TYPE, DOMAIN_NAME, ENTITY_NAME, - ENTITY_ID, 0, 1), underTest.getNumUnsuccessfullyExposedRelationshipsByEntityId()::count); + ENTITY_ID, "", "", 0, 1), underTest.getNumUnsuccessfullyExposedRelationshipsByEntityId()::count); } @Test diff --git a/teiv/src/test/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestControllerTest.java b/teiv/src/test/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestControllerTest.java index 313568e..d72e1f6 100644 --- a/teiv/src/test/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestControllerTest.java +++ b/teiv/src/test/java/org/oran/smo/teiv/exposure/data/rest/controller/DataRestControllerTest.java @@ -255,7 +255,7 @@ class DataRestControllerTest { response.setLast(href); Assertions.assertEquals(ResponseEntity.ok(response), underTest.getAllRelationshipsForEntityId(ACCEPT_TYPE, - "RAN_LOGICAL", "NRCellDU", "B480427E8A0C0B8D994E437784BB382F", 0, 5)); + "RAN_LOGICAL", "NRCellDU", "B480427E8A0C0B8D994E437784BB382F", "", "", 0, 5)); verify(requestValidator, Mockito.times(1)).validateDomain("RAN_LOGICAL"); verify(requestValidator, Mockito.times(1)).validateEntityType("NRCellDU"); diff --git a/teiv/src/test/resources/contracts/ran/schemas/getAllSchemas.groovy b/teiv/src/test/resources/contracts/ran/schemas/getAllSchemas.groovy index edc2ccb..0135d2d 100644 --- a/teiv/src/test/resources/contracts/ran/schemas/getAllSchemas.groovy +++ b/teiv/src/test/resources/contracts/ran/schemas/getAllSchemas.groovy @@ -37,10 +37,7 @@ import org.springframework.cloud.contract.spec.Contract "items": [ { "name": "o-ran-smo-teiv-cloud-to-ran", - "domain": [ - "RAN", - "CLOUD" - ], + "domain": "CLOUD_TO_RAN", "revision": "2023-06-26", "content": { "href": "/schemas/o-ran-smo-teiv-cloud-to-ran/content" diff --git a/teiv/src/test/resources/contracts/ran/schemas/getSchemasInDomain.groovy b/teiv/src/test/resources/contracts/ran/schemas/getSchemasInDomain.groovy index 2de7c73..f754260 100644 --- a/teiv/src/test/resources/contracts/ran/schemas/getSchemasInDomain.groovy +++ b/teiv/src/test/resources/contracts/ran/schemas/getSchemasInDomain.groovy @@ -37,10 +37,7 @@ import org.springframework.cloud.contract.spec.Contract "items": [ { "name": "o-ran-smo-teiv-cloud-to-ran", - "domain": [ - "RAN", - "CLOUD" - ], + "domain": "CLOUD_TO_RAN", "revision": "2023-06-26", "content": { "href": "/schemas/o-ran-smo-teiv-cloud-to-ran/content" -- 2.16.6