Merge "Update docs and add pgsql-generator guide"
diff --git a/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt b/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
index b50acad..9b69dc2 100644
--- a/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
+++ b/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
@@ -1,382 +1,312 @@
 ce_specversion:::1.0,ce_id:::a30e63c9-d29e-46ff-b99a-b63ed83fd237,ce_source:::dmi-plugin:nm-1,ce_type:::ran-logical-topology.merge,content-type:::application/yang-data+json,ce_time:::2023-11-30T09:05:00Z,ce_dataschema:::https://ties:8080/schemas/v1/r1-topology,,,{
     "entities": {
-      "o-ran-smo-teiv-oam:ManagedElement": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01",
-          "attributes": {
-            "fdn": "ManagedElement=NR01",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]"
+        "o-ran-smo-teiv-oam:ManagedElement": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01"
             }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:GNBDUFunction": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "attributes": {
-            "gNBDUId": 1,
-            "gNBId": 1,
-            "gNBIdLength": 23,
-            "dUpLMNId": {
-              "mcc": 353,
-              "mnc": 87
+        ],
+        "o-ran-smo-teiv-ran:GNBDUFunction": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "attributes": {
+                    "gNBDUId": 1,
+                    "gNBId": 1,
+                    "gNBIdLength": 23,
+                    "dUpLMNId": {
+                        "mcc": 353,
+                        "mnc": 87
+                    }
+                }
+            }
+        ],
+        "o-ran-smo-teiv-ran:NRSectorCarrier": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
+                "attributes": {
+                    "arfcnDL": 4000,
+                    "arfcnUL": 40000,
+                    "frequencyDL": 4,
+                    "frequencyUL": 40
+                }
             },
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRSectorCarrier": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
-          "attributes": {
-            "arfcnDL": 4000,
-            "arfcnUL": 40000,
-            "frequencyDL": 4,
-            "frequencyUL": 40,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=1]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-          "attributes": {
-            "arfcnDL": 5000,
-            "arfcnUL": 50000,
-            "frequencyDL": 5,
-            "frequencyUL": 50,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=2]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-          "attributes": {
-            "arfcnDL": 6000,
-            "arfcnUL": 60000,
-            "frequencyDL": 6,
-            "frequencyUL": 60,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=3]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRCellDU": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
-          "attributes": {
-            "cellLocalId": 1,
-            "nRTAC": 40,
-            "nRPCI": 400,
-            "nCI": 24577,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=1]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-          "attributes": {
-            "cellLocalId": 2,
-            "nRTAC": 50,
-            "nRPCI": 500,
-            "nCI": 24578,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=2]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:AntennaCapability": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
-          "attributes": {
-            "eUtranFqBands": "[1,2,3]",
-            "geranFqBands": "[10,11,12]",
-            "nRFqBands": "[100,101,102]",
-            "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=1]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
-          "attributes": {
-            "eUtranFqBands": "[4,5,6]",
-            "geranFqBands": "[13,14,15]",
-            "nRFqBands": "[103,104,105]",
-            "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=2]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-equipment:AntennaModule": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:1",
-          "attributes": {
-            "antennaModelNumber": "1",
-            "mechanicalAntennaBearing": 50,
-            "mechanicalAntennaTilt": 10,
-            "positionWithinSector": "Unknown",
-            "totalTilt": 14,
-            "electricalAntennaTilt": 2,
-            "fdn": "Unknown",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
-            }
-          }
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:2",
-          "attributes": {
-            "antennaModelNumber": "2",
-            "mechanicalAntennaBearing": 45,
-            "mechanicalAntennaTilt": 12,
-            "positionWithinSector": "Unknown",
-            "totalTilt": 15,
-            "electricalAntennaTilt": 1,
-            "fdn": "Unknown",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-equipment:Site": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:1",
-          "attributes": {
-            "name": "Site-1",
-            "geo-location": {
-              "latitude": 41.73297,
-              "longitude": -78.007696
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
+                "attributes": {
+                    "arfcnDL": 5000,
+                    "arfcnUL": 50000,
+                    "frequencyDL": 5,
+                    "frequencyUL": 50
+                }
             },
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
+                "attributes": {
+                    "arfcnDL": 6000,
+                    "arfcnUL": 60000,
+                    "frequencyDL": 6,
+                    "frequencyUL": 60
+                }
             }
-          }
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:2",
-          "attributes": {
-            "name": "Site-2",
-            "geo-location": {
-              "latitude": 46.73297,
-              "longitude": -76.007696
+        ],
+        "o-ran-smo-teiv-ran:NRCellDU": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
+                "attributes": {
+                    "cellLocalId": 1,
+                    "nRTAC": 40,
+                    "nRPCI": 400,
+                    "nCI": 24577
+                }
             },
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+                "attributes": {
+                    "cellLocalId": 2,
+                    "nRTAC": 50,
+                    "nRPCI": 500,
+                    "nCI": 24578
+                }
             }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:Sector": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "attributes": {
-            "sectorId": 1,
-            "azimuth": 75.345,
-            "geo-location": {
-              "latitude": 40.73297,
-              "longitude": -74.007696
+        ],
+        "o-ran-smo-teiv-ran:AntennaCapability": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
+                "attributes": {
+                    "eUtranFqBands": "[1,2,3]",
+                    "geranFqBands": "[10,11,12]",
+                    "nRFqBands": "[100,101,102]"
+                }
+            },
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
+                "attributes": {
+                    "eUtranFqBands": "[4,5,6]",
+                    "geranFqBands": "[13,14,15]",
+                    "nRFqBands": "[103,104,105]"
+                }
             }
-          }
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "attributes": {
-            "sectorId": 2,
-            "azimuth": 90.8967,
-            "geo-location": {
-              "latitude": 41.73297,
-              "longitude": -73.007696
+        ],
+        "o-ran-smo-teiv-equipment:AntennaModule": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:1",
+                "attributes": {
+                    "antennaModelNumber": "1",
+                    "mechanicalAntennaBearing": 50,
+                    "mechanicalAntennaTilt": 10,
+                    "positionWithinSector": "Unknown",
+                    "totalTilt": 14,
+                    "electricalAntennaTilt": 2
+                }
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:2",
+                "attributes": {
+                    "antennaModelNumber": "2",
+                    "mechanicalAntennaBearing": 45,
+                    "mechanicalAntennaTilt": 12,
+                    "positionWithinSector": "Unknown",
+                    "totalTilt": 15,
+                    "electricalAntennaTilt": 1
+                }
             }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-cloud:CloudifiedNF": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud:1",
-          "attributes": {
-            "name": "CloudifiedNF-1"
-          }
-        }
-      ],
-      "o-ran-smo-teiv-cloud:NFDeployment": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud:1",
-          "attributes": {
-            "name": "NFDeployment-1"
-          }
-        }
-      ]
+        ],
+        "o-ran-smo-teiv-equipment:Site": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:1",
+                "attributes": {
+                    "name": "Site-1",
+                    "geo-location": {
+                        "latitude": 41.73297,
+                        "longitude": -78.007696
+                    }
+                }
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:2",
+                "attributes": {
+                    "name": "Site-2",
+                    "geo-location": {
+                        "latitude": 46.73297,
+                        "longitude": -76.007696
+                    }
+                }
+            }
+        ],
+        "o-ran-smo-teiv-ran:Sector": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "attributes": {
+                    "sectorId": 1,
+                    "azimuth": 75.345,
+                    "geo-location": {
+                        "latitude": 40.73297,
+                        "longitude": -74.007696
+                    }
+                }
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "attributes": {
+                    "sectorId": 2,
+                    "azimuth": 90.8967,
+                    "geo-location": {
+                        "latitude": 41.73297,
+                        "longitude": -73.007696
+                    }
+                }
+            }
+        ],
+        "o-ran-smo-teiv-cloud:CloudifiedNF": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud:1",
+                "attributes": {
+                    "name": "CloudifiedNF-1"
+                }
+            }
+        ],
+        "o-ran-smo-teiv-cloud:NFDeployment": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud:1",
+                "attributes": {
+                    "name": "NFDeployment-1"
+                }
+            }
+        ]
     },
     "relationships": {
-      "o-ran-smo-teiv-oam-to-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [
-        {
-          "id": "urn:o-ran:smo-teiv-oam-to-logical:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
-        }
-      ],
-      "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:3",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
-        }
-      ],
-      "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRCELLDU": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:3",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRSECTORCARRIER_USES_ANTENNACAPABILITY": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:3",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
-        }
-      ],
-      "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
-          "aSide": "urn:o-ran:smo-teiv-equipment:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
-          "aSide": "urn:o-ran:smo-teiv-equipment:2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
-        }
-      ],
-      "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:1",
-          "aSide": "urn:o-ran:smo-teiv-equipment:1",
-          "bSide": "urn:o-ran:smo-teiv-equipment:1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:2",
-          "aSide": "urn:o-ran:smo-teiv-equipment:2",
-          "bSide": "urn:o-ran:smo-teiv-equipment:2"
-        }
-      ],
-      "o-ran-smo-teiv-equipment-to-ran:SECTOR_GROUPS_NRCELLDU": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
-          "aSide": "urn:o-ran:smo-teiv-ran:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
-          "aSide": "urn:o-ran:smo-teiv-ran:2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:3",
-          "aSide": "urn:o-ran:smo-teiv-ran:2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=3"
-        }
-      ],
-      "o-ran-smo-teiv-oam-to-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
-        {
-          "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
-          "aSide": "urn:o-ran:smo-teiv-cloud:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01"
-        }
-      ],
-      "o-ran-smo-teiv-oam-to-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
-        {
-          "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01",
-          "bSide": "urn:o-ran:smo-teiv-cloud:1"
-        }
-      ],
-      "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud:1",
-          "aSide": "urn:o-ran:smo-teiv-cloud:1",
-          "bSide": "urn:o-ran:smo-teiv-cloud:1"
-        }
-      ],
-      "o-ran-smo-teiv-cloud-to-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud-to-ran:1",
-          "aSide": "urn:o-ran:smo-teiv-cloud:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
-        }
-      ]
+        "o-ran-smo-teiv-oam-to-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [
+            {
+                "id": "urn:o-ran:smo-teiv-oam-to-logical:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
+            }
+        ],
+        "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:3",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
+            }
+        ],
+        "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRCELLDU": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
+            }
+        ],
+        "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:3",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
+            }
+        ],
+        "o-ran-smo-teiv-ran:NRSECTORCARRIER_USES_ANTENNACAPABILITY": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:3",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+            }
+        ],
+        "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
+                "aSide": "urn:o-ran:smo-teiv-equipment:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
+                "aSide": "urn:o-ran:smo-teiv-equipment:2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+            }
+        ],
+        "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_INSTALLED_AT_SITE": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:1",
+                "aSide": "urn:o-ran:smo-teiv-equipment:1",
+                "bSide": "urn:o-ran:smo-teiv-equipment:1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:2",
+                "aSide": "urn:o-ran:smo-teiv-equipment:2",
+                "bSide": "urn:o-ran:smo-teiv-equipment:2"
+            }
+        ],
+        "o-ran-smo-teiv-equipment-to-ran:SECTOR_GROUPS_NRCELLDU": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
+                "aSide": "urn:o-ran:smo-teiv-ran:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
+                "aSide": "urn:o-ran:smo-teiv-ran:2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
+            }
+        ],
+        "o-ran-smo-teiv-oam-to-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
+            {
+                "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
+                "aSide": "urn:o-ran:smo-teiv-cloud:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01"
+            }
+        ],
+        "o-ran-smo-teiv-oam-to-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
+            {
+                "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01",
+                "bSide": "urn:o-ran:smo-teiv-cloud:1"
+            }
+        ],
+        "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud:1",
+                "aSide": "urn:o-ran:smo-teiv-cloud:1",
+                "bSide": "urn:o-ran:smo-teiv-cloud:1"
+            }
+        ],
+        "o-ran-smo-teiv-cloud-to-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud-to-ran:1",
+                "aSide": "urn:o-ran:smo-teiv-cloud:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
+            }
+        ]
     }
 }
\ No newline at end of file
diff --git a/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql b/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
index ad443da..4012f63 100644
--- a/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
+++ b/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
@@ -1,22 +1,22 @@
 --
---  ============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
+-- ============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
+--       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.
+-- 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=========================================================
+-- SPDX-License-Identifier: Apache-2.0
+-- ============LICENSE_END=========================================================
 --
 
 BEGIN;
@@ -30,60 +30,60 @@
 SET ROLE 'topology_exposure_user';
 
 CREATE TABLE IF NOT EXISTS ties_model.execution_status (
-    "schema"                 VARCHAR(127) PRIMARY KEY,
-    "status"          VARCHAR(127)
+    "schema" VARCHAR(127) PRIMARY KEY,
+    "status" VARCHAR(127)
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.hash_info (
-    "name"                 VARCHAR(511) PRIMARY KEY,
-    "hashedValue"          VARCHAR(511),
-    "type"                 VARCHAR(511)
+    "name"        VARCHAR(511) PRIMARY KEY,
+    "hashedValue" VARCHAR(511) NOT NULL,
+    "type"        VARCHAR(511)
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.module_reference (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "namespace"              VARCHAR(511),
-    "domain"             VARCHAR(511),
-    "includedModules"        jsonb,
-    "revision"       VARCHAR(511),
-    "content"               TEXT,
-    "ownerAppId"       VARCHAR(511),
-    "status"       VARCHAR(127)
+    "name"            VARCHAR(511) PRIMARY KEY,
+    "namespace"       VARCHAR(511),
+    "domain"          VARCHAR(511),
+    "includedModules" jsonb DEFAULT '[]'::jsonb,
+    "revision"        VARCHAR(511) NOT NULL,
+    "content"         TEXT NOT NULL,
+    "ownerAppId"      VARCHAR(511) NOT NULL,
+    "status"          VARCHAR(127) NOT NULL
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.entity_info (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "moduleReferenceName"    VARCHAR(511),
+    "name"                VARCHAR(511) PRIMARY KEY,
+    "moduleReferenceName" VARCHAR(511) NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.relationship_info (
-    "name"      VARCHAR(511) PRIMARY KEY,
-    "aSideAssociationName"    TEXT,
-    "aSideMOType"             TEXT,
-    "aSideMinCardinality"     BIGINT,
-    "aSideMaxCardinality"     BIGINT,
-    "bSideAssociationName"    TEXT,
-    "bSideMOType"             TEXT,
-    "bSideMinCardinality"     BIGINT,
-    "bSideMaxCardinality"     BIGINT,
-    "associationKind"    TEXT,
-    "relationshipDataLocation"          TEXT,
-    "connectSameEntity"       BOOLEAN,
-    "moduleReferenceName"     TEXT,
+    "name"                     VARCHAR(511) PRIMARY KEY,
+    "aSideAssociationName"     TEXT NOT NULL,
+    "aSideMOType"              TEXT NOT NULL,
+    "aSideMinCardinality"      BIGINT NOT NULL,
+    "aSideMaxCardinality"      BIGINT NOT NULL,
+    "bSideAssociationName"     TEXT NOT NULL,
+    "bSideMOType"              TEXT NOT NULL,
+    "bSideMinCardinality"      BIGINT NOT NULL,
+    "bSideMaxCardinality"      BIGINT NOT NULL,
+    "associationKind"          TEXT NOT NULL,
+    "relationshipDataLocation" TEXT NOT NULL,
+    "connectSameEntity"        BOOLEAN NOT NULL,
+    "moduleReferenceName"      TEXT NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.decorators (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "dataType"                   VARCHAR(511),
-    "moduleReferenceName"    VARCHAR(511),
+    "name"                VARCHAR(511) PRIMARY KEY,
+    "dataType"            VARCHAR(511) NOT NULL,
+    "moduleReferenceName" VARCHAR(511) NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.classifiers (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "moduleReferenceName"    VARCHAR(511),
+    "name"                VARCHAR(511) PRIMARY KEY,
+    "moduleReferenceName" VARCHAR(511) NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
@@ -99,27 +99,21 @@
 NRSectorCarrier	NRSectorCarrier	TABLE
 REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
 FK_LTESectorCarrier_REL_FK_used-by-euTranCell	FK_LTESectorCarrier_REL_FK_used-by-euTranCell	CONSTRAINT
-REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
 REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
+REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
 frequencyUL	frequencyUL	COLUMN
 bSChannelBwDL	bSChannelBwDL	COLUMN
-UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	CONSTRAINT
 REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
 CD_sourceIds	CD_sourceIds	COLUMN
-REL_FK_serving-physicalNF	REL_FK_serving-physicalNF	COLUMN
-REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
-REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
-REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
 NRCellCU	NRCellCU	TABLE
 REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
 REL_FK_used-by-euTranCell	REL_FK_used-by-euTranCell	COLUMN
 UNIQUE_NRSectorCarrier_REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991	CONSTRAINT
-REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
+REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
 NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	TABLE
-REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction	FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction	CONSTRAINT
 REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
 eNBId	eNBId	COLUMN
@@ -135,10 +129,7 @@
 REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 PK_ManagedElement_id	PK_ManagedElement_id	CONSTRAINT
 UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	CONSTRAINT
-REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 REL_FK_provided-by-gnbcucpFunction	REL_FK_provided-by-gnbcucpFunction	COLUMN
-FK_ENodeBFunction_REL_FK_serving-physicalNF	FK_ENodeBFunction_REL_FK_serving-physicalNF	CONSTRAINT
-REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 ManagedElement	ManagedElement	TABLE
 PK_AntennaModule_id	PK_AntennaModule_id	CONSTRAINT
 PK_CloudNamespace_id	PK_CloudNamespace_id	CONSTRAINT
@@ -151,8 +142,6 @@
 REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
 FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction	FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction	CONSTRAINT
 UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	CONSTRAINT
-REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE	REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
-UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	CONSTRAINT
 FK_GNBCUUPFunction_REL_FK_managed-by-managedElement	FK_GNBCUUPFunction_REL_FK_managed-by-managedElement	CONSTRAINT
 PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id	PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id	CONSTRAINT
 ANTENNAMODULE_SERVES_ANTENNACAPABILITY	ANTENNAMODULE_SERVES_ANTENNACAPABILITY	TABLE
@@ -160,17 +149,15 @@
 PK_NRSectorCarrier_id	PK_NRSectorCarrier_id	CONSTRAINT
 mechanicalAntennaBearing	mechanicalAntennaBearing	COLUMN
 REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
-ENodeBFunction	ENodeBFunction	TABLE
 nRPCI	nRPCI	COLUMN
+ENodeBFunction	ENodeBFunction	TABLE
 antennaModelNumber	antennaModelNumber	COLUMN
-REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
 REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
 PK_NRCellCU_id	PK_NRCellCU_id	CONSTRAINT
 REL_FK_used-antennaCapability	REL_FK_used-antennaCapability	COLUMN
 REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
 cellId	cellId	COLUMN
 UNIQUE_NRSectorCarrier_REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F	CONSTRAINT
-REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
 UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL	UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL	CONSTRAINT
 REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	COLUMN
@@ -182,7 +169,6 @@
 geranFqBands	geranFqBands	COLUMN
 REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
 PK_EUtranCell_id	PK_EUtranCell_id	CONSTRAINT
-REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
 FK_NRSectorCarrier_REL_FK_used-antennaCapability	FK_NRSectorCarrier_REL_FK_used-antennaCapability	CONSTRAINT
 bSide_GNBCUCPFunction	bSide_GNBCUCPFunction	COLUMN
@@ -191,10 +177,8 @@
 bSide_CloudSite	bSide_CloudSite	COLUMN
 FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment	FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment	CONSTRAINT
 REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
-REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE	REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
 REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
 REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE	REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
 positionWithinSector	positionWithinSector	COLUMN
 NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	TABLE
 REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
@@ -204,7 +188,6 @@
 PK_GNBCUCPFunction_id	PK_GNBCUCPFunction_id	CONSTRAINT
 REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
 REL_FK_deployed-on-nodeCluster	REL_FK_deployed-on-nodeCluster	COLUMN
-REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
 AntennaCapability	AntennaCapability	TABLE
 NodeCluster	NodeCluster	TABLE
 REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
@@ -221,29 +204,24 @@
 antennaBeamWidth	antennaBeamWidth	COLUMN
 NFDEPLOYMENT_SERVES_GNBDUFUNCTION	NFDEPLOYMENT_SERVES_GNBDUFUNCTION	TABLE
 FK_EUtranCell_REL_FK_grouped-by-sector	FK_EUtranCell_REL_FK_grouped-by-sector	CONSTRAINT
-REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 cellLocalId	cellLocalId	COLUMN
 REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
 gNBCUName	gNBCUName	COLUMN
 electricalAntennaTilt	electricalAntennaTilt	COLUMN
-REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
 FK_NRSectorCarrier_REL_FK_used-by-nrCellDu	FK_NRSectorCarrier_REL_FK_used-by-nrCellDu	CONSTRAINT
-FK_GNBDUFunction_REL_FK_serving-physicalNF	FK_GNBDUFunction_REL_FK_serving-physicalNF	CONSTRAINT
+REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
 REL_FK_provided-by-enodebFunction	REL_FK_provided-by-enodebFunction	COLUMN
 eUtranFqBands	eUtranFqBands	COLUMN
 REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 CD_classifiers	CD_classifiers	COLUMN
 aSide_NodeCluster	aSide_NodeCluster	COLUMN
-REL_FK_comprised-by-cloudifiedNF	REL_FK_comprised-by-cloudifiedNF	COLUMN
 UNIQUE_ManagedElement_REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C	CONSTRAINT
+REL_FK_comprised-by-cloudifiedNF	REL_FK_comprised-by-cloudifiedNF	COLUMN
 UNIQUE_CloudNamespace_REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0	CONSTRAINT
-FK_GNBCUCPFunction_REL_FK_serving-physicalNF	FK_GNBCUCPFunction_REL_FK_serving-physicalNF	CONSTRAINT
 REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
 REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
 CloudSite	CloudSite	TABLE
-REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 FK_AntennaModule_REL_FK_grouped-by-sector	FK_AntennaModule_REL_FK_grouped-by-sector	CONSTRAINT
-REL_ID_PHYSICALNF_INSTALLED_AT_SITE	REL_ID_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
 REL_FK_used-by-nrCellDu	REL_FK_used-by-nrCellDu	COLUMN
 FK_GNBDUFunction_REL_FK_managed-by-managedElement	FK_GNBDUFunction_REL_FK_managed-by-managedElement	CONSTRAINT
 PK_LTESectorCarrier_id	PK_LTESectorCarrier_id	CONSTRAINT
@@ -251,17 +229,14 @@
 geo-location	geo-location	COLUMN
 REL_FK_grouped-by-sector	REL_FK_grouped-by-sector	COLUMN
 REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	COLUMN
-UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	CONSTRAINT
 FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	CONSTRAINT
-gNBId	gNBId	COLUMN
 id	id	COLUMN
+gNBId	gNBId	COLUMN
 PK_NRCellDU_id	PK_NRCellDU_id	CONSTRAINT
 EUtranCell	EUtranCell	TABLE
-REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
-UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE	UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE	CONSTRAINT
+REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 PK_Site_id	PK_Site_id	CONSTRAINT
-PK_PhysicalNF_id	PK_PhysicalNF_id	CONSTRAINT
 REL_FK_installed-at-site	REL_FK_installed-at-site	COLUMN
 NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	TABLE
 CloudNamespace	CloudNamespace	TABLE
@@ -273,15 +248,11 @@
 earfcnul	earfcnul	COLUMN
 REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
 aSide_NFDeployment	aSide_NFDeployment	COLUMN
-REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	CONSTRAINT
-FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	CONSTRAINT
 REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
+FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	CONSTRAINT
 bSide_GNBCUUPFunction	bSide_GNBCUUPFunction	COLUMN
-PhysicalNF	PhysicalNF	TABLE
-cmId	cmId	COLUMN
 REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
-type	type	COLUMN
 PK_NFDeployment_id	PK_NFDeployment_id	CONSTRAINT
 nCI	nCI	COLUMN
 REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
@@ -295,14 +266,12 @@
 AntennaModule	AntennaModule	TABLE
 REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
 LTESectorCarrier	LTESectorCarrier	TABLE
-REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
 FK_LTESectorCarrier_REL_FK_used-antennaCapability	FK_LTESectorCarrier_REL_FK_used-antennaCapability	CONSTRAINT
 REL_FK_managed-by-managedElement	REL_FK_managed-by-managedElement	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
 aSide_AntennaModule	aSide_AntennaModule	COLUMN
-fdn	fdn	COLUMN
 REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 dUpLMNId	dUpLMNId	COLUMN
 REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
@@ -332,11 +301,11 @@
 REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
 REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
 REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
-REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	COLUMN
 REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
+REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	COLUMN
 nRFqBands	nRFqBands	COLUMN
-FK_NFDeployment_REL_FK_serviced-managedElement	FK_NFDeployment_REL_FK_serviced-managedElement	CONSTRAINT
 FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF	FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF	CONSTRAINT
+FK_NFDeployment_REL_FK_serviced-managedElement	FK_NFDeployment_REL_FK_serviced-managedElement	CONSTRAINT
 tac	tac	COLUMN
 arfcnDL	arfcnDL	COLUMN
 REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
@@ -346,21 +315,16 @@
 sectorId	sectorId	COLUMN
 REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	COLUMN
 PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id	PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id	CONSTRAINT
-UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	CONSTRAINT
-FK_PhysicalNF_REL_FK_installed-at-site	FK_PhysicalNF_REL_FK_installed-at-site	CONSTRAINT
 GNBCUUPFunction	GNBCUUPFunction	TABLE
-FK_GNBCUUPFunction_REL_FK_serving-physicalNF	FK_GNBCUUPFunction_REL_FK_serving-physicalNF	CONSTRAINT
 FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite	FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite	CONSTRAINT
 UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE	UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE	CONSTRAINT
 UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER	UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER	CONSTRAINT
 REL_FK_deployed-as-cloudifiedNF	REL_FK_deployed-as-cloudifiedNF	COLUMN
 PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id	PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id	CONSTRAINT
-REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
 totalTilt	totalTilt	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
 REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
-REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 gNBIdLength	gNBIdLength	COLUMN
 UNIQUE_ENodeBFunction_REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE	CONSTRAINT
 FK_NRCellDU_REL_FK_provided-by-gnbduFunction	FK_NRCellDU_REL_FK_provided-by-gnbduFunction	CONSTRAINT
@@ -385,76 +349,70 @@
 \.
 
 COPY ties_model.module_reference("name", "namespace", "domain", "includedModules", "revision", "content", "ownerAppId", "status") FROM stdin;
-o-ran-smo-teiv-common-yang-extensions	urn:o-ran:smo-teiv-common-yang-extensions	\N	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgewoKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMiOwogIHByZWZpeCBvci10ZWl2LXlleHQ7CgogIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogIGNvbnRhY3QgIkVyaWNzc29uIGZpcnN0IGxpbmUgc3VwcG9ydCB2aWEgZW1haWwiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgWUFORyBleHRlbnNpb25zIG1vZGVsLgoKICBDb3B5cmlnaHQgKGMpIDIwMjMgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogIFRoaXMgbW9kZWwgY29udGFpbnMgZXh0ZW5zaW9ucyB0byB0aGUgWUFORyBsYW5ndWFnZSB0aGF0IHRvcG9sb2d5IGFuZAogIGludmVudG9yeSBtb2RlbHMgd2lsbCB1c2UgdG8gZGVmaW5lIGFuZCBhbm5vdGF0ZSB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4iOwoKICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgZGVzY3JpcHRpb24gIkluaXRpYWwgcmV2aXNpb24uIjsKICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICB9CgogIGV4dGVuc2lvbiBiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgewoKICAgIGRlc2NyaXB0aW9uCiAgICAgICJEZWZpbmVzIGEgYmktZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwIGluIHRoZSB0b3BvbG9neS4KCiAgICAgICBBIGJpLWRpcmVjdGlvbmFsLWFzc29jaWF0aW9uIChCREEpIGlzIGEgcmVsYXRpb25zaGlwIGNvbXByaXNpbmcgb2YgYW4KICAgICAgIEEtc2lkZSBhbmQgYSBCLXNpZGUuIFRoZSBBLXNpZGUgaXMgY29uc2lkZXJlZCB0aGUgb3JpZ2luYXRpbmcgc2lkZSBvZgogICAgICAgdGhlIHJlbGF0aW9uc2hpcDsgdGhlIEItc2lkZSBpcyBjb25zaWRlcmVkIHRoZSB0ZXJtaW5hdGluZyBzaWRlIG9mIHRoZQogICAgICAgcmVsYXRpb25zaGlwLiBUaGUgb3JkZXIgb2YgQS1zaWRlIGFuZCBCLXNpZGUgaXMgb2YgaW1wb3J0YW5jZSBhbmQgTVVTVAogICAgICAgTk9UIGJlIGNoYW5nZWQgb25jZSBkZWZpbmVkLgoKICAgICAgIEJvdGggQS1zaWRlIGFuZCBCLXNpZGUgYXJlIGRlZmluZWQgb24gYSB0eXBlLCBhbmQgYXJlIGdpdmVuIGEgcm9sZS4gQQogICAgICAgdHlwZSBtYXkgaGF2ZSBtdWx0aXBsZSBvcmlnaW5hdGluZyBhbmQvb3IgdGVybWluYXRpbmcgc2lkZXMgb2YgYQogICAgICAgcmVsYXRpb25zaGlwLCBhbGwgZGlzdGluZ3Vpc2hlZCBieSByb2xlIG5hbWUuCgogICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlICdtb2R1bGUnIHN0YXRlbWVudC4KICAgICAgIE11bHRpcGxlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudHMgYXJlIGFsbG93ZWQKICAgICAgIHBlciBwYXJlbnQgc3RhdGVtZW50LgoKICAgICAgIFN1YnN0YXRlbWVudHMgdG8gdGhlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIGRlZmluZSB0aGUKICAgICAgIEEtc2lkZSBhbmQgdGhlIEItc2lkZSwgcmVzcGVjdGl2ZWx5LCBhbmQgb3B0aW9uYWxseSBwcm9wZXJ0aWVzIG9mIHRoZQogICAgICAgcmVsYXRpb25zaGlwLiBEYXRhIG5vZGVzIG9mIHR5cGVzICdsZWFmJyBhbmQgJ2xlYWYtbGlzdCcgYXJlIHVzZWQgZm9yCiAgICAgICB0aGlzIHB1cnBvc2UuIE9uZSBvZiB0aGUgZGF0YSBub2RlcyBNVVNUIGJlIGFubm90YXRlZCB3aXRoIHRoZSAnYS1zaWRlJwogICAgICAgZXh0ZW5zaW9uOyBhbm90aGVyIGRhdGEgbm9kZSBNVVNUIGJlIGFubm90YXRlZCB3aXRoIHRoZSAnYi1zaWRlJwogICAgICAgZXh0ZW5zaW9uLiBPdGhlciBkYXRhIG5vZGVzIGRlZmluZSBwcm9wZXJ0aWVzIG9mIHRoZSByZWxhdGlvbnNoaXAuCgogICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgbmFtZSBpcwogICAgICAgc2NvcGVkIHRvIHRoZSBuYW1lc3BhY2Ugb2YgdGhlIGRlY2xhcmluZyBtb2R1bGUgYW5kIE1VU1QgYmUgdW5pcXVlCiAgICAgICB3aXRoaW4gdGhlIHNjb3BlLiI7CgogICAgYXJndW1lbnQgcmVsYXRpb25zaGlwTmFtZTsKICB9CgogIGV4dGVuc2lvbiBhU2lkZSB7CiAgICBkZXNjcmlwdGlvbgogICAgICAiRGVmaW5lcyB0aGUgQS1zaWRlIG9mIGEgcmVsYXRpb25zaGlwLgoKICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIGEgJ2xlYWYnIG9yICdsZWFmLWxpc3QnCiAgICAgICBzdGF0ZW1lbnQsIHdoaWNoIGl0c2VsZiBtdXN0IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZQogICAgICAgJ3VuaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudC4KCiAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIE1VU1QgYmUKICAgICAgICdpbnN0YW5jZS1pZGVudGlmaWVyJy4gQ29uc3RyYWludHMgTUFZIGJlIHVzZWQgYXMgcGFydCBvZiB0aGUgcGFyZW50CiAgICAgICAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgdG8gZW5mb3JjZSBjYXJkaW5hbGl0eS4KCiAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBpcyB1c2VkIGFzIG5hbWUgb2YKICAgICAgIHRoZSByb2xlIG9mIHRoZSBBLXNpZGUgb2YgdGhlIHJlbGF0aW9uc2hpcC4gVGhlIG5hbWUgb2YgdGhlIHJvbGUgaXMKICAgICAgIHNjb3BlZCB0byB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQS1zaWRlIGlzIGRlZmluZWQgYW5kIE1VU1QgYmUgdW5pcXVlCiAgICAgICB3aXRoaW4gdGhlIHNjb3BlLgoKICAgICAgIFdoaWxlIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIGRvZXMgbm90IHJlc3VsdCBpbiBhIHByb3BlcnR5IG9mCiAgICAgICB0aGUgcmVsYXRpb25zaGlwLCBpdCBpcyBSRUNPTU1FTkRFRCB0byBhdm9pZCB1c2luZyB0aGUgbmFtZSBvZiBhbgogICAgICAgZXhpc3RpbmcgdHlwZSBwcm9wZXJ0eSBhcyByb2xlIG5hbWUgdG8gYXZvaWQgcG90ZW50aWFsIGFtYmlndWl0aWVzCiAgICAgICBiZXR3ZWVuIHByb3BlcnRpZXMgb2YgYSB0eXBlLCBhbmQgcm9sZXMgb2YgYSByZWxhdGlvbnNoaXAgb24gdGhlIHR5cGUuCgogICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIG9uIHdoaWNoIHRoZSBBLXNpZGUgcmVzaWRlcy4gSWYgdGhlCiAgICAgICB0eXBlIGlzIGRlY2xhcmVkIGluIGFub3RoZXIgbW9kdWxlLCB0aGUgdHlwZSBtdXN0IGJlIHByZWZpeGVkLCBhbmQgYQogICAgICAgY29ycmVzcG9uZGluZyAnaW1wb3J0JyBzdGF0ZW1lbnQgYmUgdXNlZCB0byBkZWNsYXJlIHRoZSBwcmVmaXguIjsKCiAgICBhcmd1bWVudCBhU2lkZVR5cGU7CiAgfQoKICBleHRlbnNpb24gYlNpZGUgewogICAgZGVzY3JpcHRpb24gIkRlZmluZXMgdGhlIEItc2lkZSBvZiBhIHJlbGF0aW9uc2hpcC4KCiAgICAgICBUaGUgc3RhdGVtZW50IE1VU1Qgb25seSBiZSBhIHN1YnN0YXRlbWVudCBvZiBhICdsZWFmJyBvciAnbGVhZi1saXN0JwogICAgICAgc3RhdGVtZW50LCB3aGljaCBpdHNlbGYgbXVzdCBiZSBhIHN1YnN0YXRlbWVudCBvZiB0aGUKICAgICAgICd1bmktZGlyZWN0aW9uYWwtdG9wb2xvZ3ktcmVsYXRpb25zaGlwJyBzdGF0ZW1lbnQuCgogICAgICAgVGhlIGRhdGEgdHlwZSBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBNVVNUIGJlCiAgICAgICAnaW5zdGFuY2UtaWRlbnRpZmllcicuIENvbnN0cmFpbnRzIE1BWSBiZSB1c2VkIGFzIHBhcnQgb2YgdGhlIHBhcmVudAogICAgICAgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIHRvIGVuZm9yY2UgY2FyZGluYWxpdHkuCgogICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgaXMgdXNlZCBhcyBuYW1lIG9mCiAgICAgICB0aGUgcm9sZSBvZiB0aGUgQi1zaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBuYW1lIG9mIHRoZSByb2xlIGlzCiAgICAgICBzY29wZWQgdG8gdGhlIHR5cGUgb24gd2hpY2ggdGhlIEItc2lkZSBpcyBkZWZpbmVkIGFuZCBNVVNUIGJlIHVuaXF1ZQogICAgICAgd2l0aGluIHRoZSBzY29wZS4KCiAgICAgICBXaGlsZSB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBkb2VzIG5vdCByZXN1bHQgaW4gYSBwcm9wZXJ0eSBvZgogICAgICAgdGhlIHJlbGF0aW9uc2hpcCwgaXQgaXMgUkVDT01NRU5ERUQgdG8gYXZvaWQgdXNpbmcgdGhlIG5hbWUgb2YgYW4KICAgICAgIGV4aXN0aW5nIHR5cGUgcHJvcGVydHkgYXMgcm9sZSBuYW1lIHRvIGF2b2lkIHBvdGVudGlhbCBhbWJpZ3VpdGllcwogICAgICAgYmV0d2VlbiBwcm9wZXJ0aWVzIG9mIGEgdHlwZSwgYW5kIHJvbGVzIG9mIGEgcmVsYXRpb25zaGlwIG9uIHRoZSB0eXBlLgoKICAgICAgIFRoZSBhcmd1bWVudCBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQi1zaWRlIHJlc2lkZXMuIElmIHRoZQogICAgICAgdHlwZSBpcyBkZWNsYXJlZCBpbiBhbm90aGVyIG1vZHVsZSwgdGhlIHR5cGUgbXVzdCBiZSBwcmVmaXhlZCwgYW5kIGEKICAgICAgIGNvcnJlc3BvbmRpbmcgJ2ltcG9ydCcgc3RhdGVtZW50IGJlIHVzZWQgdG8gZGVjbGFyZSB0aGUgcHJlZml4LiI7CgogICAgYXJndW1lbnQgYlNpZGVUeXBlOwogIH0KCiAgZXh0ZW5zaW9uIGRvbWFpbiB7CiAgICBkZXNjcmlwdGlvbiAiS2V5d29yZCB1c2VkIHRvIGNhcnJ5IGRvbWFpbiBpbmZvcm1hdGlvbi4iOwogICAgYXJndW1lbnQgZG9tYWluTmFtZTsKICB9CgogIGV4dGVuc2lvbiBsYWJlbCB7CiAgICBkZXNjcmlwdGlvbiAiVGhlIGxhYmVsIGNhbiBiZSB1c2VkIHRvIGdpdmUgbW9kdWxlcyBhbmQgc3VibW9kdWxlcyBhIHNlbWFudGljIHZlcnNpb24sIGluIGFkZGl0aW9uIHRvIHRoZWlyIHJldmlzaW9uLgoKICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgbGFiZWwgaXMg4oCYeC55LnrigJkg4oCTIGV4cHJlc3NlZCBhcyBwYXR0ZXJuLCBpdCBpcyBbMC05XStcXC5bMC05XStcXC5bMC05XSsKCiAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZSByZXZpc2lvbiBzdGF0ZW1lbnQuICBaZXJvIG9yIG9uZSByZXZpc2lvbiBsYWJlbCBzdGF0ZW1lbnRzCiAgICAgIHBlciBwYXJlbnQgc3RhdGVtZW50IGFyZSBhbGxvd2VkLgoKICAgICAgUmV2aXNpb24gbGFiZWxzIE1VU1QgYmUgdW5pcXVlIGFtb25nc3QgYWxsIHJldmlzaW9ucyBvZiBhIG1vZHVsZSBvciBzdWJtb2R1bGUuIjsKICAgICAgYXJndW1lbnQgc2VtdmVyc2lvbjsKICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-oam-to-cloud	urn:o-ran:smo-teiv-oam-to-cloud	OAM_TO_CLOUD	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-cloud"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbS10by1jbG91ZCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtLXRvLWNsb3VkIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbXRvY2xvdWQ7CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHtwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LW9hbSB7cHJlZml4IG9yLXRlaXYtb2FtOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNsb3VkIHtwcmVmaXggb3ItdGVpdi1jbG91ZDsgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBPJk0gdG8gQ2xvdWQgdG9wb2xvZ3kgbW9kZWwuCgogICAgQ29weXJpZ2h0IChjKSAyMDIzIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIFJBTiBPJk0gdG8gQ2xvdWQgdG9wb2xvZ3kgcmVsYXRpb25zIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIG9yLXRlaXYteWV4dDpkb21haW4gT0FNX1RPX0NMT1VEOwoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfREVQTE9ZRURfQVNfQ0xPVURJRklFRE5GIHsgIC8vIDAuLjEgdG8gMQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZiBkZXBsb3llZC1hcy1jbG91ZGlmaWVkTkYgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IGRlcGxveWVkIGFzIENsb3VkaWZpZWQgTkYuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGRlcGxveWVkLW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkaWZpZWQgTkYgZGVwbG95cyBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtY2xvdWQ6Q2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfTUFOQUdFREVMRU1FTlQgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgc2VydmljZWQtbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IHNlcnZpY2VkIGJ5IHRoaXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1jbG91ZDpORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCB0aGF0IHNlcnZlcyB0aGlzIE1hbmFnZWQgRWxlbWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-common-yang-types	urn:o-ran:smo-teiv-common-yang-types	\N	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsKCiAgeWFuZy12ZXJzaW9uIDEuMTsKICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyI7CiAgcHJlZml4IG9yLXRlaXYtdHlwZXM7CgogIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogIGltcG9ydCBfM2dwcC1jb21tb24teWFuZy10eXBlcyB7IHByZWZpeCB0eXBlczNncHA7IH0KCiAgb3JnYW5pemF0aW9uICJFcmljc3NvbiBBQiI7CiAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgZGVzY3JpcHRpb24KICAiVG9wb2xvZ3kgYW5kIEludmVudG9yeSBjb21tb24gdHlwZXMgbW9kZWwuCgogIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgVGhpcyBtb2RlbCBjb250YWlucyByZS11c2FibGUgZGF0YSB0eXBlcyB0aGF0IHRvcG9sb2d5IGFuZCBpbnZlbnRvcnkgbW9kZWxzCiAgd2lsbCBmcmVxdWVudGx5IHVzZSBhcyBwYXJ0IG9mIHR5cGVzIGFuZCByZWxhdGlvbnNoaXBzLiI7CgogIHJldmlzaW9uICIyMDI0LTA1LTAyIiB7CiAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogIH0KCiAgZ3JvdXBpbmcgVG9wX0dycF9UeXBlIHsKCiAgICBkZXNjcmlwdGlvbiAiR3JvdXBpbmcgY29udGFpbmluZyB0aGUga2V5IGF0dHJpYnV0ZSBjb21tb24gdG8gYWxsIHR5cGVzLiBBbGwgdHlwZXMKICAgICAgICAgICAgICAgIE1VU1QgdXNlIHRoaXMgZ3JvdXBpbmcuIjsKCiAgICBsZWFmIGlkIHsKICAgICAgdHlwZSBzdHJpbmc7CiAgICAgIGRlc2NyaXB0aW9uICJVbmlxdWUgaWRlbnRpZmllciBvZiB0b3BvbG9neSBlbnRpdGllcy4gUmVwcmVzZW50cyB0aGUgRW50aXR5IEluc3RhbmNlIElkZW50aWZpZXIuIjsKICAgIH0KICB9CgogIGdyb3VwaW5nIENNX0lEIHsKCiAgICBkZXNjcmlwdGlvbiAiR3JvdXBpbmcgY29udGFpbmluZyB0aGUga2V5IGF0dHJpYnV0ZXMgdG8gbWFrZQogICAgICAgICAgICAgICAgdXNlIG9mIENvbmZpZ3VyYXRpb24gTWFuYWdlbWVudCAoQ00pLiI7CgogICAgbGVhZiBjbUhhbmRsZSB7CiAgICAgIHR5cGUgc3RyaW5nOwogICAgICBkZXNjcmlwdGlvbiAiVW5pcXVlIGlkZW50aWZpZXIgZm9yIG5ldHdvcmsgZW50aXRpZXMgaW4gQ00uIjsKICAgIH0KCiAgICBsZWFmIHJlc291cmNlSWRlbnRpZmllciB7CiAgICAgIHR5cGUgc3RyaW5nOwogICAgICBkZXNjcmlwdGlvbiAiVGhlIHhwYXRoIGV4cHJlc3Npb24gaWRlbnRpZnlpbmcgdGhlIHJlc291cmNlIGluIHRoZSBOb2RlIG1vZGVsIHlhbmcgdHJlZS4iOwogICAgfQogIH0KCiAgdHlwZWRlZiBfM0dQUF9GRE5fVHlwZSB7CiAgICB0eXBlIHR5cGVzM2dwcDpEaXN0aW5ndWlzaGVkTmFtZTsKICB9CgogIGNvbnRhaW5lciBjb25zdW1lci1kYXRhIHsKICAgIGRlc2NyaXB0aW9uICJUaGlzIGNvbnRhaW5lciBkZWZpbmVzIHRoZSBjb25zdW1lci1kYXRhLiBDb25zdW1lci1kYXRhIG1heSBiZSBhdHRhY2hlZCB0byBUb3BvbG9neSBFbnRpdHkgb3IKICAgICAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4KICAgICAgICAgICAgICAgIFRoaXMgY29udGFpbmVyIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQsIGFuZCBpdCBNVVNUIE5PVCBiZSBhdWdtZW50ZWQgb3IgZGV2aWF0ZWQgaW4gYW55IHdheSwgdW5sZXNzIHN0YXRlZAogICAgICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CgogICAgY29udGFpbmVyIGRlY29yYXRvcnMgewogICAgICBkZXNjcmlwdGlvbiAiVGhpcyBjb250YWluZXIgc2VydmVzIGFzIGV4dGVuc2lvbiBwb2ludCBmb3IgYXBwbGljYXRpb25zIHdpc2hpbmcgdG8gZGVmaW5lIHRoZWlyIG93biBkZWNvcmF0b3JzLgogICAgICAgICAgICAgICAgICBUaGlzIGlzIGRvbmUgdmlhIGF1Z21lbnRhdGlvbnMuIFRoZXkgY2FuIG9ubHkgYmUgZGVmaW5lZCBpbiBuYW1lIHZhbHVlIHBhaXIuIjsKICAgIH0KCiAgICBsZWFmLWxpc3QgY2xhc3NpZmllcnMgewogICAgICBkZXNjcmlwdGlvbiAiQ29uc3VtZXIgZGVmaW5lZCB0YWdzIHRvIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnNoaXBzLiI7CiAgICAgIHR5cGUgaWRlbnRpdHlyZWYgeyBiYXNlIGNsYXNzaWZpZXI7IH0KICAgIH0KCiAgICBsZWFmLWxpc3Qgc291cmNlSWRzIHsKICAgICAgZGVzY3JpcHRpb24gIkFuIG9yZGVyZWQgbGlzdCBvZiBpZGVudGl0aWVzIHRoYXQgcmVwcmVzZW50IHRoZSBzZXQgb2YgbmF0aXZlIHNvdXJjZSBpZGVudGlmaWVycyBmb3IgcGFydGljaXBhdGluZwogICAgICAgICAgICAgICAgICBlbnRpdGllcy4iOwogICAgICB0eXBlIHN0cmluZzsKICAgICAgb3JkZXJlZC1ieSB1c2VyOwogICAgfQoKICAgIGNvbnRhaW5lciBtZXRhZGF0YSB7CiAgICAgIGRlc2NyaXB0aW9uICJUaGlzIGNvbnRhaW5lciBzZXJ2ZXMgYXMgZXh0ZW5zaW9uIHBvaW50IHRvIGRlZmluZSBtZXRhZGF0YS4gVGhleSBjYW4gb25seSBiZSBkZWZpbmVkIGluIG5hbWUgdmFsdWUKICAgICAgICAgICAgICAgICAgcGFpci4iOwogICAgfQogIH0KCiAgaWRlbnRpdHkgY2xhc3NpZmllcnsKICAgIGRlc2NyaXB0aW9uICAiVGhlIGNsYXNzaWZpZXIgaXMgdXNlZCBhcyBhIGJhc2UgdG8gcHJvdmlkZSBhbGwgY2xhc3NpZmllcnMgd2l0aCBpZGVudGl0eS4gIjsKICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-oam	urn:o-ran:smo-teiv-oam	OAM	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbSB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbTsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBvcmdhbml6YXRpb24gIkVyaWNzc29uIEFCIjsKICAgIGNvbnRhY3QgIkVyaWNzc29uIGZpcnN0IGxpbmUgc3VwcG9ydCB2aWEgZW1haWwiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gTyZNIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIE8mTSBkb21haW4sIHdoaWNoIGFyZSBpbnRlbmRlZCB0byByZXByZXNlbnQgbWFuYWdlbWVudCBzeXN0ZW1zCiAgICBhbmQgbWFuYWdlbWVudCBpbnRlcmZhY2VzLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIE9BTTsKCiAgICBsaXN0IE1hbmFnZWRFbGVtZW50IHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBNYW5hZ2VkIEVsZW1lbnQgKE1FKSBpcyBhIG5vZGUgaW50byBhIHRlbGVjb21tdW5pY2F0aW9uIG5ldHdvcmsKICAgICAgICAgICAgICAgICAgICBwcm92aWRpbmcgc3VwcG9ydCBhbmQvb3Igc2VydmljZSB0byBzdWJzY3JpYmVycy4gQW4gTUUgY29tbXVuaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgd2l0aCBhIG1hbmFnZXIgYXBwbGljYXRpb24gKGRpcmVjdGx5IG9yIGluZGlyZWN0bHkpIG92ZXIgb25lIG9yIG1vcmUKICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VzIGZvciB0aGUgcHVycG9zZSBvZiBiZWluZyBtb25pdG9yZWQgYW5kL29yIGNvbnRyb2xsZWQuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBmZG4gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoaXMgRnVsbCBEaXN0aW5ndWlzaGVkIE5hbWUgKEZETikgaWRlbnRpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5zdGFuY2Ugb2YgdGhlIE1hbmFnZWRFbGVtZW50IE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuYWdlZEVsZW1lbnQuIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-oam-to-ran	urn:o-ran:smo-teiv-oam-to-ran	OAM_TO_RAN	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbS10by1yYW4gewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LW9hbS10by1yYW4iOwogICAgcHJlZml4IG9yLXRlaXYtb2FtdG9yYW47CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHtwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LW9hbSB7cHJlZml4IG9yLXRlaXYtb2FtOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LXJhbiB7cHJlZml4IG9yLXRlaXYtcmFuOyB9CgogICAgb3JnYW5pemF0aW9uICJFcmljc3NvbiBBQiI7CiAgICBjb250YWN0ICJFcmljc3NvbiBmaXJzdCBsaW5lIHN1cHBvcnQgdmlhIGVtYWlsIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIE8mTSB0byBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSBSQU4gTyZNIHRvIExvZ2ljYWwgdG9wb2xvZ3kgcmVsYXRpb25zIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIG9yLXRlaXYteWV4dDpkb21haW4gT0FNX1RPX1JBTjsKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE1BTkFHRURFTEVNRU5UX01BTkFHRVNfRU5PREVCRlVOQ1RJT04geyAgIC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IG1hbmFnZWQtZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IG1hbmFnZXMgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LW9hbTpNYW5hZ2VkRWxlbWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBtYW5hZ2VkLWJ5LW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBtYW5hZ2VkIGJ5IE1hbmFnZWQgRWxlbWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46RU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19HTkJEVUZVTkNUSU9OIHsgICAgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgbWFuYWdlZC1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBtYW5hZ2VzIGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgbWFuYWdlZC1ieS1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItRFUgRnVuY3Rpb24gbWFuYWdlZCBieSBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19HTkJDVUNQRlVOQ1RJT04geyAgICAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBtYW5hZ2VkLWduYmN1Y3BGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYW5hZ2VkIEVsZW1lbnQgbWFuYWdlcyBnTm9kZUItQ1UtQ1AgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIG1hbmFnZWQtYnktbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVLUNQIEZ1bmN0aW9uIG1hbmFnZWQgYnkgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVUNQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19HTkJDVVVQRlVOQ1RJT04geyAgICAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBtYW5hZ2VkLWduYmN1dXBGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYW5hZ2VkIEVsZW1lbnQgbWFuYWdlcyBnTm9kZUItQ1UtVVAgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIG1hbmFnZWQtYnktbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVLVVQIEZ1bmN0aW9uIG1hbmFnZWQgYnkgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVVVQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-ran	urn:o-ran:smo-teiv-ran	RAN	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LXJhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogICAgaW1wb3J0IGlldGYtZ2VvLWxvY2F0aW9uIHsKICAgICAgICBwcmVmaXggZ2VvOwogICAgICAgIHJlZmVyZW5jZSAiUkZDIDkxNzk6IEEgWUFORyBHcm91cGluZyBmb3IgR2VvZ3JhcGhpYyBMb2NhdGlvbnMiOwogICAgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIExvZ2ljYWwgZG9tYWluLCB3aGljaCByZXByZXNlbnRzIHRoZSBmdW5jdGlvbmFsIGNhcGFiaWxpdHkKICAgIG9mIHRoZSBkZXBsb3llZCBSQU4gdGhhdCBhcmUgcmVsZXZhbnQgdG8gckFwcHMgdXNlIGNhc2VzLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJBTjsKCiAgICBsaXN0IEdOQkRVRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgICAgICAgICAgQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ2VudHJhbGl6ZWQgVW5pdAogICAgICAgICAgICAgICAgICAgIChnTkItQ1UpIGFuZCBhIGdOQi1EVS4gVGhlIENVIHByb2Nlc3NlcyBub24tcmVhbAogICAgICAgICAgICAgICAgICAgIHRpbWUgcHJvdG9jb2xzIGFuZCBzZXJ2aWNlcywgYW5kIHRoZSBEVSBwcm9jZXNzZXMKICAgICAgICAgICAgICAgICAgICBQSFkgbGV2ZWwgcHJvdG9jb2wgYW5kIHJlYWwgdGltZSBzZXJ2aWNlcy4gVGhlCiAgICAgICAgICAgICAgICAgICAgZ05CLUNVIGFuZCB0aGUgZ05CLURVIHVuaXRzIGFyZSBjb25uZWN0ZWQgdmlhCiAgICAgICAgICAgICAgICAgICAgRjEgbG9naWNhbCBpbnRlcmZhY2UuCgogICAgICAgICAgICAgICAgICAgIFRoZSBmb2xsb3dpbmcgaXMgdHJ1ZSBmb3IgYSBnTkItRFU6CiAgICAgICAgICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItQ1UtQ1AgdGhyb3VnaCB0aGUgRjEtQwogICAgICAgICAgICAgICAgICAgIGludGVyZmFjZS5JcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1VUCB0aHJvdWdoCiAgICAgICAgICAgICAgICAgICAgdGhlIEYxLVUgaW50ZXJmYWNlLiBPbmUgZ05CLURVIGlzIGNvbm5lY3RlZCB0byBvbmx5CiAgICAgICAgICAgICAgICAgICAgb25lIGdOQi1DVS1DUC4gT25lIGdOQi1EVSBjYW4gYmUgY29ubmVjdGVkIHRvCiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgZ05CLUNVLVVQcyB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc2FtZQogICAgICAgICAgICAgICAgICAgIGdOQi1DVS1DUC4KICAgICAgICAgICAgICAgICAgICBOb3RlOiBBIGdOQiBtYXkgY29uc2lzdCBvZiBhIGdOQi1DVS1DUCwgbXVsdGlwbGUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtVVBzIGFuZCBtdWx0aXBsZSBnTkItRFVzLiBnTkItRFUgaXMgYSBjb25jcmV0ZQogICAgICAgICAgICAgICAgICAgIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91CiAgICAgICAgICAgICAgICAgICAgY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIHRoZSBnTkItRFUgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBHTkJEVUZ1bmN0aW9uIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgR05CRFVGdW5jdGlvbi4iOwogICAgICAgICAgICAgICAgdHlwZSBvci10ZWl2LXR5cGVzOl8zR1BQX0ZETl9UeXBlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgZFVwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB1c2VkIGFzIHBhcnQgb2YgUE0gRXZlbnRzIGRhdGEiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQkRVSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgRFUgd2l0aGluIGEgZ05vZGVCIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJJZGVudGl0eSBvZiBnTm9kZUIgd2l0aGluIGEgUExNTiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBnTkJJZExlbmd0aCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTGVuZ3RoIG9mIGdOQklkIGJpdCBzdHJpbmcgcmVwcmVzZW50YXRpb24iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEdOQkNVQ1BGdW5jdGlvbiB7CiAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQiBDZW50cmFsaXplZCBVbml0IENvbnRyb2wgUGxhbmUgKGdOQi1DVS1DUCkKCiAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIGxvZ2ljYWwgbm9kZSBob3N0aW5nIHRoZSBSYWRpbyBSZXNvdXJjZQogICAgICAgICAgICAgICAgICAgIENvbnRyb2wgKFJSQykgYW5kIHRoZSBjb250cm9sIHBsYW5lIHBhcnQgb2YgdGhlCiAgICAgICAgICAgICAgICAgICAgUGFja2V0IERhdGEgQ29udmVyZ2VuY2UgUHJvdG9jb2wgKFBEQ1ApIG9mIHRoZQogICAgICAgICAgICAgICAgICAgIGdOb2RlQiBDZW50cmFsaXplZCBVbml0IChnTkItQ1UpIGZvciBhbiBFLVVUUkFOIGdOb2RlQgogICAgICAgICAgICAgICAgICAgIChlbi1nTkIpIG9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLUNQIHRlcm1pbmF0ZXMKICAgICAgICAgICAgICAgICAgICB0aGUgRTEgaW50ZXJmYWNlIGNvbm5lY3RlZCB3aXRoIHRoZSBnTkItQ1UtVVAgYW5kIHRoZQogICAgICAgICAgICAgICAgICAgIEYxLUMgaW50ZXJmYWNlIGNvbm5lY3RlZCB3aXRoIHRoZSBnTm9kZUIKICAgICAgICAgICAgICAgICAgICBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGlzIHRydWUgZm9yIGEgZ05CLUNVLUNQOgogICAgICAgICAgICAgICAgICAgIElzIGNvbm5lY3RlZCB0byB0aGUgZ05CLURVIHRocm91Z2ggdGhlIEYxLUMgaW50ZXJmYWNlLgogICAgICAgICAgICAgICAgICAgIElzIGNvbm5lY3RlZCB0byB0aGUgZ05CLUNVLVVQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4KICAgICAgICAgICAgICAgICAgICBPbmx5IG9uZSBnTkItQ1UtQ1AgaXMgY29ubmVjdGVkIHRvIG9uZSBnTkItRFUuCiAgICAgICAgICAgICAgICAgICAgT25seSBvbmUgZ05CLUNVLUNQIGlzIGNvbm5lY3RlZCB0byBvbmUgZ05CLUNVLVVQLgogICAgICAgICAgICAgICAgICAgIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBnTkItQ1UtVVBzCiAgICAgICAgICAgICAgICAgICAgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLk9uZSBnTkItQ1UtVVAKICAgICAgICAgICAgICAgICAgICBjYW4gYmUgY29ubmVjdGVkIHRvIG11bHRpcGxlIERVcyB1bmRlciB0aGUgY29udHJvbCBvZgogICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGdOQi1DVS1DUC4KICAgICAgICAgICAgICAgICAgICBOb3RlOiBBIGdOQiBtYXkgY29uc2lzdCBvZiBhIGdOQi1DVS1DUCwgbXVsdGlwbGUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtVVBzIGFuZCBtdWx0aXBsZSBnTkItRFVzLiBBIGdOQi1DVS1DUCBpcyBhCiAgICAgICAgICAgICAgICAgICAgY29uY3JldGUgY2xhc3MgdGhhdCBleHRlbmRzIHRoZSBORy1SQU4gbm9kZSBvYmplY3QuCiAgICAgICAgICAgICAgICAgICAgSW4gVG9wb2xvZ3ksIHlvdSBjYW4gY3JlYXRlLCByZWFkLCB1cGRhdGUsIGFuZCBkZWxldGUKICAgICAgICAgICAgICAgICAgICB0aGUgZ05CLUNVLUNQIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgR05CQ1VDUEZ1bmN0aW9uIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgR05CQ1VDUEZ1bmN0aW9uLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CQ1VOYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIGdOb2RlQi1DVSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBnTkJJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSWRlbnRpdHkgb2YgZ05vZGVCIHdpdGhpbiBhIFBMTU4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgcExNTklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQTE1OIGlkZW50aWZpZXIgdG8gYmUgdXNlZCBhcyBwYXJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBnbG9iYWwgUkFOIG5vZGUgaWRlbnRpdHkiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgY21JZCB7CiAgICAgICAgICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6Q01fSUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBHTkJDVVVQRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgQ2VudHJhbGl6ZWQgVW5pdCBVc2VyIFBsYW5lIChnTkItQ1UtVVApCgogICAgICAgICAgICAgICAgICAgIEEgZ05CLUNVLVVQIGlzIGEgbG9naWNhbCBub2RlIGhvc3RpbmcgdGhlIFVzZXIKICAgICAgICAgICAgICAgICAgICBQbGFuZSBwYXJ0IG9mIHRoZSBQYWNrZXQgRGF0YSBDb252ZXJnZW5jZSwKICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCAoUERDUCkgb2YgdGhlIGdOb2RlQiBDZW50cmFsaXplZCBVbml0CiAgICAgICAgICAgICAgICAgICAgKGdOQi1DVSkgZm9yIGFuIEUtVVRSQU4gZ05vZGVCIChlbi1nTkIpLCBhbmQgdGhlCiAgICAgICAgICAgICAgICAgICAgVXNlciBQbGFuZSBwYXJ0IG9mIHRoZSBQRENQIHByb3RvY29sIGFuZCB0aGUKICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlIERhdGEgQWRhcHRhdGlvbiBQcm90b2NvbCAoU0RBUCkgb2YgdGhlCiAgICAgICAgICAgICAgICAgICAgZ05CLUNVIGZvciBhIGdOb2RlQiAoZ05CKS4gVGhlIGdOQi1DVS1VUCB0ZXJtaW5hdGVzCiAgICAgICAgICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLUNQIGFuZAogICAgICAgICAgICAgICAgICAgIHRoZSBGMS1VIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05vZGVCCiAgICAgICAgICAgICAgICAgICAgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1VUDoKICAgICAgICAgICAgICAgICAgICBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1EVSB0aHJvdWdoIHRoZQogICAgICAgICAgICAgICAgICAgIEYxLVUgaW50ZXJmYWNlLiBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1DUCB0aHJvdWdoCiAgICAgICAgICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZS4gT25lIGdOQi1DVS1VUCBpcyBjb25uZWN0ZWQgdG8gb25seSBvbmUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtQ1AuIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZQogICAgICAgICAgICAgICAgICAgIGdOQi1DVS1VUHMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLiBPbmUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtVVAgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBEVXMgdW5kZXIgdGhlCiAgICAgICAgICAgICAgICAgICAgY29udHJvbCBvZiB0aGUgc2FtZSBnTkItQ1UtQ1AuCiAgICAgICAgICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMKICAgICAgICAgICAgICAgICAgICBhbmQgbXVsdGlwbGUgZ05CLURVcy4gQSBnTkItQ1UtVVAgaXMgYSBjb25jcmV0ZSBjbGFzcyB0aGF0CiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kcyB0aGUgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbgogICAgICAgICAgICAgICAgICAgIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIHRoZSBnTkItQ1UtVVAgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBHTkJDVVVQRnVuY3Rpb24gTU8uIEl0IGNvbnRhaW5zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZnVsbCBwYXRoIGZyb20gdGhlIFN1Ym5ldHdvcmsgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTkJDVVVQRnVuY3Rpb24uIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBnTkJJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSWRlbnRpdHkgb2YgZ05vZGVCIHdpdGhpbiBhIFBMTU4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgY21JZCB7CiAgICAgICAgICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6Q01fSUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOUkNlbGxDVSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gTlIgQ2VsbCBpbiBnTm9kZUItQ1UuCgogICAgICAgICAgICAgICAgICAgIDVHIE5SIGlzIGEgbmV3IHJhZGlvIGFjY2VzcyB0ZWNobm9sb2d5IChSQVQpCiAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcGVkIGJ5IDNHUFAgZm9yIHRoZSA1RyAoZmlmdGggZ2VuZXJhdGlvbikKICAgICAgICAgICAgICAgICAgICBtb2JpbGUgbmV0d29yay4gSXQgaXMgZGVzaWduZWQgdG8gYmUgdGhlIGdsb2JhbAogICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIGZvciB0aGUgYWlyIGludGVyZmFjZSBvZiA1RyBuZXR3b3Jrcy4KCiAgICAgICAgICAgICAgICAgICAgNUcgTlIgaGFzIHN5bmNocm9uaXphdGlvbiBzaWduYWwgdGhhdCBpcyBrbm93biBhcwogICAgICAgICAgICAgICAgICAgIFByaW1hcnkgU3luY2hyb25pemF0aW9uIHNpZ25hbCAoUFNTKSBhbmQgU2Vjb25kYXJ5CiAgICAgICAgICAgICAgICAgICAgU3luY2hyb25pemF0aW9uIHNpZ25hbCAoU1NTKS4gVGhlc2Ugc2lnbmFscyBhcmUKICAgICAgICAgICAgICAgICAgICBzcGVjaWZpYyB0byBOUiBwaHlzaWNhbCBsYXllciBhbmQgcHJvdmlkZSB0aGUKICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgVUUgZm9yIGRvd25saW5rCiAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemF0aW9uOiBQU1MgcHJvdmlkZXMgUmFkaW8gRnJhbWUgQm91bmRhcnkKICAgICAgICAgICAgICAgICAgICAoUG9zaXRpb24gb2YgMXN0IFN5bWJvbCBpbiBhIFJhZGlvIGZyYW1lKSBTU1MgcHJvdmlkZXMKICAgICAgICAgICAgICAgICAgICBTdWJmcmFtZSBCb3VuZGFyeSAoUG9zaXRpb24gb2YgMXN0IFN5bWJvbCBpbiBhIFN1YmZyYW1lKQogICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsIExheWVyIENlbGwgSUQgKFBDSSkgaW5mb3JtYXRpb24gdXNpbmcgYm90aAogICAgICAgICAgICAgICAgICAgIFBTUyBhbmQgU1NTLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBOUkNlbGxDVSBNTy4gSXQgY29udGFpbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgU3VibmV0d29yayB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5SQ2VsbENVLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgY2VsbExvY2FsSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVzZWQgdG9nZXRoZXIgd2l0aCBnTm9kZUIgaWRlbnRpZmllciB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZnkgTlIgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGdOQklkIHRvIGZvcm0gTkNJLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIHBsbW5JZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiUExNTiBJRCBmb3IgTlIgQ0dJLiBJZiBlbXB0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOQkNVQ1BGdW5jdGlvbjo6cExNTklkIGlzIHVzZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBQTE1OIElEIGluIE5SIENHSSI7CiAgICAgICAgICAgICAgICB1c2VzIHR5cGVzM2dwcDpQTE1OSWQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbkNJIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBDZWxsIElkZW50aXR5IjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5SQ2VsbERVIHsKICAgICAgICBkZXNjcmlwdGlvbiAiUmVwcmVzZW50cyBhbiBOUiBDZWxsIGluIGdOb2RlQi1EVS4KCiAgICAgICAgICAgICAgICAgICAgNUcgTlIgaXMgYSBuZXcgcmFkaW8gYWNjZXNzIHRlY2hub2xvZ3kgKFJBVCkKICAgICAgICAgICAgICAgICAgICBkZXZlbG9wZWQgYnkgM0dQUCBmb3IgdGhlIDVHIChmaWZ0aCBnZW5lcmF0aW9uKQogICAgICAgICAgICAgICAgICAgIG1vYmlsZSBuZXR3b3JrLiBJdCBpcyBkZXNpZ25lZCB0byBiZSB0aGUgZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgZm9yIHRoZSBhaXIgaW50ZXJmYWNlIG9mIDVHIG5ldHdvcmtzLgoKICAgICAgICAgICAgICAgICAgICA1RyBOUiBoYXMgc3luY2hyb25pemF0aW9uIHNpZ25hbCB0aGF0IGlzIGtub3duIGFzCiAgICAgICAgICAgICAgICAgICAgUHJpbWFyeSBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChQU1MpIGFuZCBTZWNvbmRhcnkKICAgICAgICAgICAgICAgICAgICBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChTU1MpLiBUaGVzZSBzaWduYWxzIGFyZQogICAgICAgICAgICAgICAgICAgIHNwZWNpZmljIHRvIE5SIHBoeXNpY2FsIGxheWVyIGFuZCBwcm92aWRlIHRoZQogICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSBVRSBmb3IgZG93bmxpbmsKICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6YXRpb246IFBTUyBwcm92aWRlcyBSYWRpbyBGcmFtZSBCb3VuZGFyeQogICAgICAgICAgICAgICAgICAgIChQb3NpdGlvbiBvZiAxc3QgU3ltYm9sIGluIGEgUmFkaW8gZnJhbWUpIFNTUyBwcm92aWRlcwogICAgICAgICAgICAgICAgICAgIFN1YmZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZiAxc3QgU3ltYm9sIGluIGEgU3ViZnJhbWUpCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWwgTGF5ZXIgQ2VsbCBJRCAoUENJKSBpbmZvcm1hdGlvbiB1c2luZyBib3RoCiAgICAgICAgICAgICAgICAgICAgUFNTIGFuZCBTU1MuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBmZG4gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoaXMgRnVsbCBEaXN0aW5ndWlzaGVkIE5hbWUgKEZETikgaWRlbnRpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5zdGFuY2Ugb2YgdGhlIE5SQ2VsbERVIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTlJDZWxsRFUuIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBjZWxsTG9jYWxJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVXNlZCB0b2dldGhlciB3aXRoIGdOb2RlQiBpZGVudGlmaWVyIHRvIGlkZW50aWZ5IE5SCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyIHdpdGggZ05CSWQgdG8gZm9ybSBOQ0kuIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5DSSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbCBJZGVudGl0eS4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgblJQQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBQaHlzaWNhbCBDZWxsIElkZW50aXR5IChQQ0kpIG9mIHRoZSBOUiBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBuUlRBQyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgVHJhY2tpbmcgQXJlYSBDb2RlIChUQUMpLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgRU5vZGVCRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJBbiBFdm9sdmVkIE5vZGUgQiAoZU5vZGVCKSBpcyB0aGUgb25seSBtYW5kYXRvcnkKICAgICAgICAgICAgICAgICAgICBub2RlIGluIHRoZSByYWRpbyBhY2Nlc3MgbmV0d29yayAoUkFOKSBvZiBMb25nLVRlcm0KICAgICAgICAgICAgICAgICAgICBFdm9sdXRpb24gKExURSkuIFRoZSBlTm9kZUIgaXMgYSBjb21wbGV4IGJhc2UKICAgICAgICAgICAgICAgICAgICBzdGF0aW9uIHRoYXQgaGFuZGxlcyByYWRpbyBjb21tdW5pY2F0aW9ucwogICAgICAgICAgICAgICAgICAgIGluIHRoZSBjZWxsIGFuZCBjYXJyaWVzIG91dCByYWRpbyByZXNvdXJjZQogICAgICAgICAgICAgICAgICAgIG1hbmFnZW1lbnQgYW5kIGhhbmRvdmVyIGRlY2lzaW9ucy4gVW5saWtlIDIvM0cKICAgICAgICAgICAgICAgICAgICB3aXJlbGVzcyBSQU4sIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHJhZGlvIG5ldHdvcmsKICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyIGluIExURS4gSXQgaXMgdGhlIGhhcmR3YXJlIHRoYXQgaXMgY29ubmVjdGVkCiAgICAgICAgICAgICAgICAgICAgdG8gdGhlIG1vYmlsZSBwaG9uZSBuZXR3b3JrIHRoYXQgY29tbXVuaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgZGlyZWN0bHkgd2l0aCBtb2JpbGUgaGFuZHNldHMgKFVzZXIgRXF1aXBtZW50KSwgbGlrZSBhIGJhc2UKICAgICAgICAgICAgICAgICAgICB0cmFuc2NlaXZlciBzdGF0aW9uIChCVFMpIGluIEdTTSBuZXR3b3Jrcy4gVGhpcyBzaW1wbGlmaWVzCiAgICAgICAgICAgICAgICAgICAgdGhlIGFyY2hpdGVjdHVyZSBhbmQgYWxsb3dzIGxvd2VyIHJlc3BvbnNlIHRpbWVzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBFTm9kZUJGdW5jdGlvbiBNTy4gSXQgY29udGFpbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgU3VibmV0d29yayB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVOb2RlQkZ1bmN0aW9uLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZU5CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBFTm9kZUIgSUQgdGhhdCBmb3JtcyBwYXJ0IG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgQ2VsbCBHbG9iYWwgSWRlbnRpdHksIGFuZCBpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxzbyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBub2RlIG92ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBTMSBpbnRlcmZhY2UiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBlTm9kZUJQbG1uSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBFTm9kZUIgUHVibGljIExhbmQgTW9iaWxlIE5ldHdvcmsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQTE1OKSBJRCB0aGF0IGZvcm1zIHBhcnQgb2YgdGhlIEVOb2RlQgogICAgICAgICAgICAgICAgICAgICAgICAgICAgR2xvYmFsIElEIHVzZWQgdG8gaWRlbnRpZnkgdGhlIG5vZGUgb3ZlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFMxIGludGVyZmFjZS4gTm90ZTogVGhlIHZhbHVlIChNQ0M9MDAxLCBNTkM9MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgUExNTiBpcyBub3QgaW5pdGlhdGVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGNhbiBub3QgYmUgdXNlZCBhcyBhIHZhbGlkIFBMTU4gSWRlbnRpdHkuIjsKCiAgICAgICAgICAgICAgICBsZWFmIG1jYyB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBNQ0MgcGFydCBvZiBhIFBMTU4gaWRlbnRpdHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uYyB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBNTkMgcGFydCBvZiBhIFBMTU4gaWRlbnRpdHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uY0xlbmd0aCB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBsZW5ndGggb2YgdGhlIE1OQyBwYXJ0IG9mIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTE1OIGlkZW50aXR5IHVzZWQgaW4gdGhlIHJhZGlvIG5ldHdvcmsuIjsKICAgICAgICAgICAgICAgICAgICB0eXBlIGludDMyIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgMi4uMzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEVVdHJhbkNlbGwgewogICAgICAgIGRlc2NyaXB0aW9uICJSZXByZXNlbnRzIGFuIEZERCBvciBUREQgRVV0cmFuQ2VsbCBhbmQKICAgICAgICAgICAgICAgICAgICBjb250YWlucyBwYXJhbWV0ZXJzIG5lZWRlZCBieSB0aGUgY2VsbC4KICAgICAgICAgICAgICAgICAgICBJdCBhbHNvIGNvbnRhaW5zIHBhcmFtZXRlcnMgZm9yIHRoZQogICAgICAgICAgICAgICAgICAgIG1hbmRhdG9yeSBjb21tb24gY2hhbm5lbHMuIEFuIEVVVFJBTiBzdGFuZHMKICAgICAgICAgICAgICAgICAgICBmb3IgRXZvbHZlZCBVbml2ZXJzYWwgTW9iaWxlIFRlbGVjb21tdW5pY2F0aW9ucwogICAgICAgICAgICAgICAgICAgIFN5c3RlbSAoVU1UUykgVGVycmVzdHJpYWwgUmFkaW8gQWNjZXNzIE5ldHdvcmsKICAgICAgICAgICAgICAgICAgICB3aGljaCBjb250YWlucyBhbiBlTm9kZUIuIFRoZSBlTm9kZUIgY29uY3JldGUKICAgICAgICAgICAgICAgICAgICBjbGFzcyBpcyBleHRlbmRlZCBmcm9tIHRoZSBFVVRSQU4gTm9kZSBhYnN0cmFjdCBjbGFzcy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiBlaXRoZXIgdGhlIEVVdHJhbkNlbGxGREQgTU8gb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBFVXRyYW5DZWxsVEREIE1PLiBJdCBjb250YWlucyB0aGUgZnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZSBFVXRyYW5DZWxsRkREIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVXRyYW5DZWxsVERELiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgY2VsbElkewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJCUyBpbnRlcm5hbCBJRCBhdHRyaWJ1dGUgZm9yIEVVdHJhbkNlbGwuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGJlIHVuaXF1ZSBpbiB0aGUgUkJTLiBUb2dldGhlciB3aXRoIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSBJRCBhbmQgUHVibGljIExhbmQgTW9iaWxlIE5ldHdvcmsgKFBMTU4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGlzIGEgdW5pdmVyc2FsbHkgdW5pcXVlIGNlbGwgSUQiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWFyZmNuZGwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjaGFubmVsIG51bWJlciBmb3IgdGhlIGNlbnRyYWwgZG93bmxpbmsgZnJlcXVlbmN5LiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY251bCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2hhbm5lbCBudW1iZXIgZm9yIHRoZSBjZW50cmFsIHVwbGluayBmcmVxdWVuY3kiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZGxDaGFubmVsQmFuZHdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgZG93bmxpbmsgY2hhbm5lbCBiYW5kd2lkdGggaW4gdGhlIEZERCBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY24gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBFLVVUUkEgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciAoRUFSRkNOKSBmb3IgdGhlIFRERCBjZWxsIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGNoYW5uZWxCYW5kd2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjaGFubmVsIGJhbmR3aWR0aCBpbiB0aGUgVEREIGNlbGwuIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRhYyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVHJhY2tpbmcgQXJlYSBDb2RlIGZvciB0aGUgRVV0cmFuIENlbGwiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZHVwbGV4VHlwZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSW5kaWNhdG9yIG9mIEVVdHJhbkNlbGwgdHlwZSwgRkREIG9yIFRERCI7CiAgICAgICAgICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICBlbnVtIGZkZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJGREQiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHRkZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUREQiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTlJTZWN0b3JDYXJyaWVyIHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE5SIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcwogICAgICAgICAgICAgICAgICAgIHRoZSBhdHRyaWJ1dGVzIGZvciBkZWZpbmluZyB0aGUgbG9naWNhbAogICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljcyBvZiBhIGNhcnJpZXIgKGNlbGwpIGluIGEKICAgICAgICAgICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkCiAgICAgICAgICAgICAgICAgICAgd2l0aCBhIGJhc2Ugc3RhdGlvbiBoYXZpbmcgaXRzIG93biBhbnRlbm5hcywKICAgICAgICAgICAgICAgICAgICByYWRpbyBwb3J0cywgYW5kIGNvbnRyb2wgY2hhbm5lbHMuIFRoZSBjb25jZXB0CiAgICAgICAgICAgICAgICAgICAgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbAogICAgICAgICAgICAgICAgICAgIGludGVyZmVyZW5jZSBpbiBjZWxsdWxhciBzeXN0ZW1zLCBhbmQgbW9zdCB3aXJlbGVzcwogICAgICAgICAgICAgICAgICAgIHN5c3RlbXMgdXNlIHRocmVlIHNlY3RvciBjZWxscy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgTlJTZWN0b3JDYXJyaWVyIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTlJTZWN0b3JDYXJyaWVyLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgYXJmY25ETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciAoTlItQVJGQ04pIGZvciBkb3dubGluayI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBhcmZjblVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBBYnNvbHV0ZSBSYWRpbyBmcmVxdWVuY3kgQ2hhbm5lbCBOdW1iZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOUi1BUkZDTikgZm9yIHVwbGluay4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZnJlcXVlbmN5REwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJGIFJlZmVyZW5jZSBGcmVxdWVuY3kgb2YgZG93bmxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBmcmVxdWVuY3lVTCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiUkYgUmVmZXJlbmNlIEZyZXF1ZW5jeSBvZiB1cGxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBiU0NoYW5uZWxCd0RMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJCUyBDaGFubmVsIGJhbmR3aWR0aCBpbiBNSHogZm9yIGRvd25saW5rLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTFRFU2VjdG9yQ2FycmllciB7CiAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBMVEUgU2VjdG9yIENhcnJpZXIgb2JqZWN0IHByb3ZpZGVzIHRoZQogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgZm9yIGRlZmluaW5nIHRoZSBsb2dpY2FsIGNoYXJhY3RlcmlzdGljcwogICAgICAgICAgICAgICAgICAgIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYSBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UKICAgICAgICAgICAgICAgICAgICBhcmVhIGFzc29jaWF0ZWQgd2l0aCBhIGJhc2Ugc3RhdGlvbiBoYXZpbmcKICAgICAgICAgICAgICAgICAgICBpdHMgb3duIGFudGVubmFzLCByYWRpbyBwb3J0cywgYW5kIGNvbnRyb2wgY2hhbm5lbHMuCiAgICAgICAgICAgICAgICAgICAgVGhlIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbAogICAgICAgICAgICAgICAgICAgIGludGVyZmVyZW5jZSBpbiBjZWxsdWxhciBzeXN0ZW1zLCBhbmQgbW9zdCB3aXJlbGVzcyBzeXN0ZW1zCiAgICAgICAgICAgICAgICAgICAgdXNlIHRocmVlIHNlY3RvciBjZWxscy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgU2VjdG9yQ2FycmllciBNTy4gSXQgY29udGFpbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgU3VibmV0d29yayB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3RvckNhcnJpZXIuIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBzZWN0b3JDYXJyaWVyVHlwZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBzZWN0b3IgY2FycmllcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxsZWQgYnkgTU8gU2VjdG9yQ2FycmllciBpcyBhIGRpZ2l0YWwgc2VjdG9yLiI7CiAgICAgICAgICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICBlbnVtIG5vcm1hbF9zZWN0b3IgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAwOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm90IGEgZGlnaXRhbCBzZWN0b3IiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZnRfZGlnaXRhbF9zZWN0b3IgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAxOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTGVmdCBkaWdpdGFsIHNlY3RvciBmb3IgMkRTIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSByaWdodF9kaWdpdGFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDI7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSaWdodCBkaWdpdGFsIHNlY3RvciBmb3IgMkRTIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSBsZWZ0X2RpZ2l0YWxfc2VjdG9yXzNkcyB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDM7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMZWZ0IGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHJpZ2h0X2RpZ2l0YWxfc2VjdG9yXzNkcyB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSaWdodCBkaWdpdGFsIHNlY3RvciBmb3IgM0RTIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSBtaWRkbGVfZGlnaXRhbF9zZWN0b3IgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA1OwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWlkZGxlIGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIE1PIHNlcnZlcyBhcyBhIG1hcHBpbmcgYmV0d2VlbiB0aGUgY2VsbAogICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgUkJTIGVxdWlwbWVudCB1c2VkIHRvIHByb3ZpZGUgY292ZXJhZ2UKICAgICAgICAgICAgICAgICAgICBpbiBhIGNlcnRhaW4gZ2VvZ3JhcGhpY2FsIGFyZWEuIFRoZSBNTyBhbHNvCiAgICAgICAgICAgICAgICAgICAgY29udHJvbHMgdGhlIG1heGltdW0gb3V0cHV0IHBvd2VyIG9mIHRoZSBzZWN0b3IuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBmZG4gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoaXMgRnVsbCBEaXN0aW5ndWlzaGVkIE5hbWUgKEZETikgaWRlbnRpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5zdGFuY2Ugb2YgdGhlIFNlY3RvckVxdWlwbWVudEZ1bmN0aW9uIE1PLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgY29udGFpbnMgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgU2VjdG9yRXF1aXBtZW50RnVuY3Rpb24uIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZi1saXN0IGVVdHJhbkZxQmFuZHMgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2YgTFRFIGZyZXF1ZW5jeSBiYW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhc3NvY2lhdGVkIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgZ2VyYW5GcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIEdFUkFOIGZyZXF1ZW5jeSBiYW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhc3NvY2lhdGVkIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgblJGcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIE5SIGZyZXF1ZW5jeSBiYW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBoYXJkd2FyZSBzdXBwb3J0cyI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgU2VjdG9yIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBncm91cCBvZiBjby1sb2NhdGVkIENlbGxzIHRoYXQKICAgICAgICAgICAgICAgICAgICBoYXZlIGEgc2hhcmVkIGNvdmVyYWdlIGFyZWEuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBzZWN0b3JJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pdmVyc2FsbHkgdW5pcXVlIElEIGdlbmVyYXRlZCBieSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3RvcidzIGRpc2NvdmVyeSBtZWNoYW5pc20uIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDY0OwogICAgICAgICAgICB9CgogICAgICAgICAgICB1c2VzIGdlbzpnZW8tbG9jYXRpb247CgogICAgICAgICAgICBsZWFmIGF6aW11dGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkF2ZXJhZ2UgdmFsdWUgb2YgdGhlIGF6aW11dGhzIG9mIHRoZSBjZWxscwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHJpc2luZyB0aGUgc2VjdG9yLCBkZXRlcm1pbmVkIGR1cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdG9yIGRpc2NvdmVyeS4iOwogICAgICAgICAgICAgICAgdHlwZSBkZWNpbWFsNjR7CiAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1bml0cyAiZGVncmVlcyI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRU5PREVCRlVOQ1RJT05fUFJPVklERVNfRVVUUkFOQ0VMTCB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLWV1VHJhbkNlbGwgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIHByb3ZpZGVzIEVVVFJBTiBDZWxsLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBFTm9kZUJGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1lbm9kZWJGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCBwcm92aWRlZCBieSBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIEVVdHJhbkNlbGw7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRU5PREVCRlVOQ1RJT05fUFJPVklERVNfTFRFU0VDVE9SQ0FSUklFUiB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIHByb3ZpZGVzIExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHByb3ZpZGVkIGJ5IGVOb2RlQiBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTFRFU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBHTkJEVUZVTkNUSU9OX1BST1ZJREVTX05SQ0VMTERVIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJDZWxsRHUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLURVIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIENlbGwtRFUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZ25iZHVGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBDZWxsLURVIHByb3ZpZGVkIGJ5IGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CRFVGVU5DVElPTl9QUk9WSURFU19OUlNFQ1RPUkNBUlJJRVIgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1uclNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLURVIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBHTkJEVUZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgU2VjdG9yIENhcnJpZXIgcHJvdmlkZWQgYnkgZ05vZGVCLURVIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOUlNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CQ1VDUEZVTkNUSU9OX1BST1ZJREVTX05SQ0VMTENVIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJDZWxsQ3UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVQ1AgRnVuY3Rpb24gcHJvdmlkZXMgTlIgQ2VsbC1DVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgR05CQ1VDUEZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmN1Y3BGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBDZWxsLUNVIHByb3ZpZGVkIGJ5IGdOb2RlQi1DVUNQIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOUkNlbGxDVTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBFVVRSQU5DRUxMX1VTRVNfTFRFU0VDVE9SQ0FSUklFUiB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHVzZWQtbHRlU2VjdG9yQ2FycmllciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCB1c2VzIExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRVV0cmFuQ2VsbDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiB1c2VkLWJ5LWV1VHJhbkNlbGwgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHVzZWQgYnkgRVVUUkFOIENlbGwuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBMVEVTRUNUT1JDQVJSSUVSX1VTRVNfQU5URU5OQUNBUEFCSUxJVFkgeyAvLyAwLi5uIHRvIDAuLjEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgdXNlZC1hbnRlbm5hQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMVEUgU2VjdG9yIENhcnJpZXIgdXNlcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCB1c2VkLWJ5LWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBDYXBhYmlsaXR5IHVzZWQgYnkgTFRFIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBBbnRlbm5hQ2FwYWJpbGl0eTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5SQ0VMTERVX1VTRVNfTlJTRUNUT1JDQVJSSUVSIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1uclNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSB1c2VzIE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBOUkNlbGxEVTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiB1c2VkLWJ5LW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIFNlY3RvciBDYXJyaWVyIHVzZWQgYnkgTlIgQ2VsbC1EVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTlJTRUNUT1JDQVJSSUVSX1VTRVNfQU5URU5OQUNBUEFCSUxJVFkgeyAvLyAwLi5uIHRvIDAuLjEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgdXNlZC1hbnRlbm5hQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBTZWN0b3IgQ2FycmllciB1c2VzIEFudGVubmEgQ2FwYWJpbGl0eS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1ieS1uclNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBDYXBhYmlsaXR5IHVzZWQgYnkgTlIgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIEFudGVubmFDYXBhYmlsaXR5OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19OUkNFTExEVSB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGdyb3VwZWQtbnJDZWxsRHUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VjdG9yIGdyb3VwcyBOUiBDZWxsLURVLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBTZWN0b3I7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgZ3JvdXBlZC1ieS1zZWN0b3IgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBTRUNUT1JfR1JPVVBTX0VVVFJBTkNFTEwgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLWV1VHJhbkNlbGwgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VjdG9yIGdyb3VwcyBFVVRSQU4gQ2VsbC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgU2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkVVVFJBTiBDZWxsIGdyb3VwZWQgYnkgU2VjdG9yLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBFVXRyYW5DZWxsOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-equipment	urn:o-ran:smo-teiv-equipment	EQUIPMENT	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtZXF1aXBtZW50IjsKICAgIHByZWZpeCBvci10ZWl2LWVxdWlwOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7cHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7cHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIGltcG9ydCBpZXRmLWdlby1sb2NhdGlvbiB7CiAgICAgICAgcHJlZml4IGdlbzsKICAgICAgICByZWZlcmVuY2UgIlJGQyA5MTc5OiBBIFlBTkcgR3JvdXBpbmcgZm9yIEdlb2dyYXBoaWMgTG9jYXRpb25zIjsKICAgIH0KCiAgICBvcmdhbml6YXRpb24gIkVyaWNzc29uIEFCIjsKICAgIGNvbnRhY3QgIkVyaWNzc29uIGZpcnN0IGxpbmUgc3VwcG9ydCB2aWEgZW1haWwiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gRXF1aXBtZW50IHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIEVxdWlwbWVudCBkb21haW4sIHdoaWNoIGlzIG1vZGVsbGVkIHRvIHVuZGVyc3RhbmQgdGhlIHBoeXNpY2FsCiAgICBsb2NhdGlvbiBvZiBlcXVpcG1lbnQgc3VjaCBhcyBhbnRlbm5hcyBhc3NvY2lhdGVkIHdpdGggYSBjZWxsL2NhcnJpZXIKICAgIGFuZCB0aGVpciByZWxldmFudCBwcm9wZXJ0aWVzIGUuZy4gdGlsdCwgbWF4IHBvd2VyIGV0Yy4iOwoKICAgIHJldmlzaW9uICIyMDI0LTA1LTAyIiB7CiAgICAgICAgZGVzY3JpcHRpb24gIkluaXRpYWwgcmV2aXNpb24uIjsKICAgICAgICBvci10ZWl2LXlleHQ6bGFiZWwgMC4zLjA7CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmRvbWFpbiBFUVVJUE1FTlQ7CgogICAgbGlzdCBBbnRlbm5hTW9kdWxlIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQW4gQW50ZW5uYSBNb2R1bGUgcmVwcmVzZW50cyB0aGUKICAgICAgICAgICAgICAgICAgICBwaHlzaWNhbCBhc3BlY3Qgb2YgYW4gYW50ZW5uYS4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgQW50ZW5uYVN1YlVuaXQgTU8uIEl0IGNvbnRhaW5zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZnVsbCBwYXRoIGZyb20gdGhlIFN1Ym5ldHdvcmsgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnRlbm5hU3ViVW5pdC4iOwogICAgICAgICAgICAgICAgdHlwZSBvci10ZWl2LXR5cGVzOl8zR1BQX0ZETl9UeXBlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGFudGVubmFNb2RlbE51bWJlciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVmVuZG9yLXNwZWNpZmljIGFudGVubmEgbW9kZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIuIFRoaXMgYXR0cmlidXRlIGlzIHBhcnQgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vIG9wZXJhdGlvbmFsIGltcGFjdC4iOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbWVjaGFuaWNhbEFudGVubmFCZWFyaW5nIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIGJlYXJpbmcgb24gYW50ZW5uYSBzdWJ1bml0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBhbnRlbm5hIHVuaXQgaXMgaW5zdGFsbGVkLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBtZWNoYW5pY2FsQW50ZW5uYVRpbHQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBmaXhlZCBhbnRlbm5hIHRpbHQgb2YgdGhlIGluc3RhbGxhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQgYXMgdGhlIGluY2xpbmF0aW9uIG9mIHRoZSBhbnRlbm5hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50IHJlc3BlY3QgdG8gdGhlIHZlcnRpY2FsIHBsYW5lLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaXMgYSBzaWduZWQgdmFsdWUuIFBvc2l0aXZlIGluZGljYXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bnRpbHQsIGFuZCBuZWdhdGl2ZSBpbmRpY2F0ZXMgdXB0aWx0LiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBwb3NpdGlvbldpdGhpblNlY3RvciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSB1bml0IHBvc2l0aW9uIHdpdGhpbiBzZWN0b3IuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGF0dHJpYnV0ZSBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZCBhbmQgaGFzIG5vIG9wZXJhdGlvbmFsIGltcGFjdC4iOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgdG90YWxUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUb3RhbCBhbnRlbm5hIGVsZXZhdGlvbiBpbmNsdWRpbmcgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsZWQgdGlsdCBhbmQgdGhlIHRpbHQgYXBwbGllZCBieQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFJlbW90ZSBFbGVjdHJpY2FsIFRpbHQgKFJFVCkuIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGVsZWN0cmljYWxBbnRlbm5hVGlsdCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiRWxlY3RyaWNhbGx5LWNvbnRyb2xsZWQgdGlsdCBvZiBtYWluIGJlYW0gbWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCByZXNwZWN0IHRvIGRpcmVjdGlvbiBvcnRob2dvbmFsIHRvIGFudGVubmEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgYXhpcyAoc2VlIDNHUFAgVFMgMjUuNDY2KS4gVmFsdWUgaXMgc2lnbmVkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsdCBkb3duIGlzIHBvc2l0aXZlLCB0aWx0IHVwIGlzIG5lZ2F0aXZlLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZi1saXN0IGFudGVubmFCZWFtV2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBhbmd1bGFyIHNwYW4gb2YgdGhlIG1haW4gbG9iZSBvZiB0aGUgYW50ZW5uYSByYWRpYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiBpbiB0aGUgaG9yaXpvbnRhbCBwbGFuZS4gTWVhc3VyZWQgaW4gZGVncmVlcy4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHVzZXMgZ2VvOmdlby1sb2NhdGlvbjsKCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IFNpdGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBIHNpdGUgaXMgYSBwaHlzaWNhbCBsb2NhdGlvbiB3aGVyZSBhbiBBbnRlbm5hIG9yCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWwgTkYgY2FuIGJlIGluc3RhbGxlZC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgUGh5c2ljYWxORiB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYSBQaHlzaWNhbCBORiwKICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyB1c2VkIHRvIHJlYWxpc2UgTmV0d29yayBGdW5jdGlvbnMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIFBoeXNpY2FsIE5GLiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiB0eXBlIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUeXBlIG9mIFBoeXNpY2FsIE5GLiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQU5URU5OQU1PRFVMRV9JTlNUQUxMRURfQVRfU0lURSB7IC8vIDAuLm4gdG8gMC4uMQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZiBpbnN0YWxsZWQtYXQtc2l0ZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIE1vZHVsZSBpbnN0YWxsZWQgYXQgU2l0ZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQW50ZW5uYU1vZHVsZTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGluc3RhbGxlZC1hbnRlbm5hTW9kdWxlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNpdGUgd2hlcmUgQW50ZW5uYSBNb2R1bGUgaXMgaW5zdGFsbGVkLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBTaXRlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgUEhZU0lDQUxORl9JTlNUQUxMRURfQVRfU0lURSB7IC8vIDEuLm4gdG8gMC4uMQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZiBpbnN0YWxsZWQtYXQtc2l0ZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBORiBpbnN0YWxsZWQgYXQgU2l0ZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgUGh5c2ljYWxORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGluc3RhbGxlZC1waHlzaWNhbE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNpdGUgd2hlcmUgUGh5c2ljYWwgTkYgaXMgaW5zdGFsbGVkLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBTaXRlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-cloud-to-ran	urn:o-ran:smo-teiv-cloud-to-ran	CLOUD_TO_RAN	["o-ran-smo-teiv-cloud", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkLXRvLXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtY2xvdWQtdG8tcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LWNsb3VkdG9yYW47CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHtwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNsb3VkIHtwcmVmaXggb3ItdGVpdi1jbG91ZDsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1yYW4ge3ByZWZpeCBvci10ZWl2LXJhbjsgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBDbG91ZCB0byBSQU4gTG9naWNhbCB0b3BvbG9neSBtb2RlbC4KCiAgICBDb3B5cmlnaHQgKGMpIDIwMjMgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIENsb3VkIHRvIFJBTiBMb2dpY2FsIHRvcG9sb2d5IHJlbGF0aW9ucyI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEX1RPX1JBTjsKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfR05CRFVGVU5DVElPTiB7IC8vIDAuLm4gdG8gMC4ubQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHNlcnZpY2VkLWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCRFUgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBORiBEZXBsb3ltZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LWNsb3VkOk5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBnTm9kZUJEVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46R05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfR05CQ1VDUEZVTkNUSU9OIHsgLy8gMC4ubiB0byAwLi5tCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iY3VjcEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVS1DUCBGdW5jdGlvbiBzZXJ2aWNlZCBieSB0aGlzIE5GIERlcGxveW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtY2xvdWQ6TkZEZXBsb3ltZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCB0aGF0IHNlcnZlcyB0aGlzIGdOb2RlQkNVQ1AgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfR05CQ1VVUEZVTkNUSU9OIHsgLy8gMC4ubiB0byAwLi5tCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iY3V1cEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVS1VUCBGdW5jdGlvbiBzZXJ2aWNlZCBieSB0aGlzIE5GIERlcGxveW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtY2xvdWQ6TkZEZXBsb3ltZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCB0aGF0IHNlcnZlcyB0aGlzIGdOb2RlQkNVVVAgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVVVBGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-cloud	urn:o-ran:smo-teiv-cloud	CLOUD	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jbG91ZCI7CiAgICBwcmVmaXggb3ItdGVpdi1jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgaWV0Zi1nZW8tbG9jYXRpb24gewogICAgICAgIHByZWZpeCBnZW87CiAgICAgICAgcmVmZXJlbmNlICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucyI7CiAgICB9CgogICAgb3JnYW5pemF0aW9uICJFcmljc3NvbiBBQiI7CiAgICBjb250YWN0ICJFcmljc3NvbiBmaXJzdCBsaW5lIHN1cHBvcnQgdmlhIGVtYWlsIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIENMT1VEIGRvbWFpbiwgd2hpY2ggY29tcHJpc2VzIGNsb3VkIGluZnJhc3RydWN0dXJlIGFuZAogICAgZGVwbG95bWVudCBhc3BlY3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIHRvcG9sb2d5IG1vZGVsLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEOwoKICAgIGxpc3QgQ2xvdWRpZmllZE5GIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBSQU4gTmV0d29yayBGdW5jdGlvbiBzb2Z0d2FyZSB0aGF0IGlzIGRlcGxveWVkIGluIHRoZSBPLUNsb3VkIHZpYSBvbmUgb3IgbW9yZSBORiBEZXBsb3ltZW50cy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWRpZmllZCBORiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5GRGVwbG95bWVudCB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgc29mdHdhcmUgZGVwbG95bWVudCBvbiBPLUNsb3VkIHJlc291cmNlcyB0aGF0IHJlYWxpemVzLCBhbGwgb3IgcGFydCBvZiwgYSBDbG91ZGlmaWVkIE5GLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBORiBEZXBsb3ltZW50IjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQ2xvdWROYW1lc3BhY2UgewogICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZE5hbWVzcGFjZSBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpc29sYXRpbmcKICAgICAgICAgICAgICAgICAgICBncm91cHMgb2YgcmVzb3VyY2VzIHdpdGhpbiBhIHNpbmdsZSBjbHVzdGVyLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBDbG91ZCBOYW1lc3BhY2UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOb2RlQ2x1c3RlciB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgTm9kZUNsdXN0ZXIgbWFuYWdlcyBhIGNvbGxlY3Rpb24gb2YgTm9kZXMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIE5vZGUgQ2x1c3RlciI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IENsb3VkU2l0ZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQKICAgICAgICAgICAgICAgICAgICBob3N0cyB0aGUgTkYgRGVwbG95bWVudC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWQgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBDTE9VRElGSUVETkZfQ09NUFJJU0VTX05GREVQTE9ZTUVOVCB7IC8vIDEgdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGNvbXByaXNlZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWRpZmllZCBORiBjb21wcmlzZXMgb2YgdGhlc2UgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBjb21wcmlzZWQtYnktY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgcGFydCBvZiBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTkZERVBMT1lNRU5UX0RFUExPWUVEX09OX0NMT1VETkFNRVNQQUNFIHsgLy8gMS4ubiB0byAxLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtb24tY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCBkZXBsb3llZCBvbiBDbG91ZCBOYW1lc3BhY2UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBkZXBsb3llZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQ0xPVUROQU1FU1BBQ0VfREVQTE9ZRURfT05fTk9ERUNMVVNURVIgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtb24tbm9kZUNsdXN0ZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveWVkIG9uIE5vZGUgQ2x1c3Rlci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm9kZSBDbHVzdGVyIGRlcGxveXMgQ2xvdWQgTmFtZXNwYWNlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOb2RlQ2x1c3RlcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOT0RFQ0xVU1RFUl9MT0NBVEVEX0FUX0NMT1VEU0lURSB7IC8vIDEuLm4gdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGxvY2F0ZWQtYXQtY2xvdWRTaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5vZGUgQ2x1c3RlciBsb2NhdGVkIGF0IENsb3VkIFNpdGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5vZGVDbHVzdGVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGxvY2F0aW9uLW9mLW5vZGVDbHVzdGVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkIFNpdGUgaXMgbG9jYXRpb24gb2YgTm9kZSBDbHVzdGVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBDbG91ZFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-equipment-to-ran	urn:o-ran:smo-teiv-equipment-to-ran	EQUIPMENT_TO_RAN	["o-ran-smo-teiv-equipment", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudC10by1yYW4gewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWVxdWlwbWVudC10by1yYW4iOwogICAgcHJlZml4IG9yLXRlaXYtZXF1aXB0b3JhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtZXF1aXBtZW50IHtwcmVmaXggb3ItdGVpdi1lcXVpcDsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1yYW4ge3ByZWZpeCBvci10ZWl2LXJhbjsgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBFcXVpcG1lbnQgdG8gTG9naWNhbCB0b3BvbG9neSBtb2RlbC4KCiAgICBDb3B5cmlnaHQgKGMpIDIwMjMgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIEVxdWlwbWVudCB0byBMb2dpY2FsIHRvcG9sb2d5CiAgICBlbnRpdGllcyBhbmQgcmVsYXRpb25zLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIEVRVUlQTUVOVF9UT19SQU47CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBQSFlTSUNBTE5GX1NFUlZFU19HTkJEVUZVTkNUSU9OIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iZHVGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItRFUgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBQaHlzaWNhbCBORi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1lcXVpcDpQaHlzaWNhbE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHNlcnZpbmctcGh5c2ljYWxORiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBORiBzZXJ2ZXMgdGhpcyBnTm9kZUItRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBQSFlTSUNBTE5GX1NFUlZFU19HTkJDVUNQRlVOQ1RJT04geyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aWNlZC1nbmJjdWNwRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVQ1AgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBQaHlzaWNhbCBORi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1lcXVpcDpQaHlzaWNhbE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHNlcnZpbmctcGh5c2ljYWxORiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBORiBzZXJ2ZXMgdGhpcyBnTm9kZUItQ1VDUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46R05CQ1VDUEZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgUEhZU0lDQUxORl9TRVJWRVNfR05CQ1VVUEZVTkNUSU9OIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iY3V1cEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVVVQIEZ1bmN0aW9uIHNlcnZpY2VkIGJ5IHRoaXMgUGh5c2ljYWwgTkYuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtZXF1aXA6UGh5c2ljYWxORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBzZXJ2aW5nLXBoeXNpY2FsTkYgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiUGh5c2ljYWwgTkYgc2VydmVzIHRoaXMgZ05vZGVCLUNVVVAgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVVVBGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIFBIWVNJQ0FMTkZfU0VSVkVTX0VOT0RFQkZVTkNUSU9OIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIHNlcnZpY2VkIGJ5IHRoaXMgUGh5c2ljYWwgTkYuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtZXF1aXA6UGh5c2ljYWxORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBzZXJ2aW5nLXBoeXNpY2FsTkYgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiUGh5c2ljYWwgTkYgc2VydmVzIHRoaXMgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpFTm9kZUJGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEFOVEVOTkFNT0RVTEVfU0VSVkVTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi5tCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBDYXBhYmlsaXR5IHNlcnZpY2VkIGJ5IHRoaXMgQW50ZW5uYSBNb2R1bGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtZXF1aXA6QW50ZW5uYU1vZHVsZTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctYW50ZW5uYU1vZHVsZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIE1vZHVsZSBzZXJ2ZXMgdGhpcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkFudGVubmFDYXBhYmlsaXR5OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19BTlRFTk5BTU9EVUxFIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZ3JvdXBlZC1hbnRlbm5hTW9kdWxlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgQW50ZW5uYSBNb2R1bGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtcmFuOlNlY3RvcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBncm91cGVkLWJ5LXNlY3RvciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIE1vZHVsZSBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1lcXVpcDpBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-common-yang-extensions	urn:o-ran:smo-teiv-common-yang-extensions	\N	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgewoKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMiOwogIHByZWZpeCBvci10ZWl2LXlleHQ7CgogIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgWUFORyBleHRlbnNpb25zIG1vZGVsCgogIFRoaXMgbW9kZWwgY29udGFpbnMgZXh0ZW5zaW9ucyB0byB0aGUgWUFORyBsYW5ndWFnZSB0aGF0IHRvcG9sb2d5IGFuZAogIGludmVudG9yeSBtb2RlbHMgd2lsbCB1c2UgdG8gZGVmaW5lIGFuZCBhbm5vdGF0ZSB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4KCiAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0yNCIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIGV4dGVuc2lvbiBiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJEZWZpbmVzIGEgYmktZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwIGluIHRoZSB0b3BvbG9neS4KCiAgICAgICAgICAgIEEgYmktZGlyZWN0aW9uYWwtYXNzb2NpYXRpb24gKEJEQSkgaXMgYSByZWxhdGlvbnNoaXAgY29tcHJpc2luZyBvZgogICAgICAgICAgICBhbiBBLXNpZGUgYW5kIGEgQi1zaWRlLiBUaGUgQS1zaWRlIGlzIGNvbnNpZGVyZWQgdGhlIG9yaWdpbmF0aW5nCiAgICAgICAgICAgIHNpZGUgb2YgdGhlIHJlbGF0aW9uc2hpcDsgdGhlIEItc2lkZSBpcyBjb25zaWRlcmVkIHRoZSB0ZXJtaW5hdGluZwogICAgICAgICAgICBzaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBvcmRlciBvZiBBLXNpZGUgYW5kIEItc2lkZSBpcyBvZgogICAgICAgICAgICBpbXBvcnRhbmNlIGFuZCBNVVNUIE5PVCBiZSBjaGFuZ2VkIG9uY2UgZGVmaW5lZC4KCiAgICAgICAgICAgIEJvdGggQS1zaWRlIGFuZCBCLXNpZGUgYXJlIGRlZmluZWQgb24gYSB0eXBlLCBhbmQgYXJlIGdpdmVuIGEgcm9sZS4KICAgICAgICAgICAgQSB0eXBlIG1heSBoYXZlIG11bHRpcGxlIG9yaWdpbmF0aW5nIGFuZC9vciB0ZXJtaW5hdGluZyBzaWRlcyBvZiBhCiAgICAgICAgICAgIHJlbGF0aW9uc2hpcCwgYWxsIGRpc3Rpbmd1aXNoZWQgYnkgcm9sZSBuYW1lLgoKICAgICAgICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlICdtb2R1bGUnIHN0YXRlbWVudC4KICAgICAgICAgICAgTXVsdGlwbGUgJ2JpLWRpcmVjdGlvbmFsLXRvcG9sb2d5LXJlbGF0aW9uc2hpcCcgc3RhdGVtZW50cyBhcmUKICAgICAgICAgICAgYWxsb3dlZCBwZXIgcGFyZW50IHN0YXRlbWVudC4KCiAgICAgICAgICAgIFN1YnN0YXRlbWVudHMgdG8gdGhlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIGRlZmluZQogICAgICAgICAgICB0aGUgQS1zaWRlIGFuZCB0aGUgQi1zaWRlLCByZXNwZWN0aXZlbHksIGFuZCBvcHRpb25hbGx5IHByb3BlcnRpZXMKICAgICAgICAgICAgb2YgdGhlIHJlbGF0aW9uc2hpcC4gRGF0YSBub2RlcyBvZiB0eXBlcyAnbGVhZicgYW5kICdsZWFmLWxpc3QnIGFyZQogICAgICAgICAgICB1c2VkIGZvciB0aGlzIHB1cnBvc2UuIE9uZSBvZiB0aGUgZGF0YSBub2RlcyBNVVNUIGJlIGFubm90YXRlZCB3aXRoCiAgICAgICAgICAgIHRoZSAnYS1zaWRlJyBleHRlbnNpb247IGFub3RoZXIgZGF0YSBub2RlIE1VU1QgYmUgYW5ub3RhdGVkIHdpdGggdGhlCiAgICAgICAgICAgICdiLXNpZGUnIGV4dGVuc2lvbi4gT3RoZXIgZGF0YSBub2RlcyBkZWZpbmUgcHJvcGVydGllcyBvZiB0aGUKICAgICAgICAgICAgcmVsYXRpb25zaGlwLgoKICAgICAgICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgbmFtZQogICAgICAgICAgICBpcyBzY29wZWQgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgZGVjbGFyaW5nIG1vZHVsZSBhbmQgTVVTVCBiZQogICAgICAgICAgICB1bmlxdWUgd2l0aGluIHRoZSBzY29wZS4iOwoKICAgICAgICBhcmd1bWVudCByZWxhdGlvbnNoaXBOYW1lOwogICAgfQoKICAgIGV4dGVuc2lvbiBhU2lkZSB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkRlZmluZXMgdGhlIEEtc2lkZSBvZiBhIHJlbGF0aW9uc2hpcC4KCiAgICAgICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIGEgJ2xlYWYnIG9yICdsZWFmLWxpc3QnCiAgICAgICAgICAgIHN0YXRlbWVudCwgd2hpY2ggaXRzZWxmIG11c3QgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlCiAgICAgICAgICAgICd1bmktZGlyZWN0aW9uYWwtdG9wb2xvZ3ktcmVsYXRpb25zaGlwJyBzdGF0ZW1lbnQuCgogICAgICAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIE1VU1QgYmUKICAgICAgICAgICAgJ2luc3RhbmNlLWlkZW50aWZpZXInLiBDb25zdHJhaW50cyBNQVkgYmUgdXNlZCBhcyBwYXJ0IG9mIHRoZSBwYXJlbnQKICAgICAgICAgICAgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIHRvIGVuZm9yY2UgY2FyZGluYWxpdHkuCgogICAgICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBpcyB1c2VkIGFzIG5hbWUKICAgICAgICAgICAgb2YgdGhlIHJvbGUgb2YgdGhlIEEtc2lkZSBvZiB0aGUgcmVsYXRpb25zaGlwLiBUaGUgbmFtZSBvZiB0aGUgcm9sZQogICAgICAgICAgICBpcyBzY29wZWQgdG8gdGhlIHR5cGUgb24gd2hpY2ggdGhlIEEtc2lkZSBpcyBkZWZpbmVkIGFuZCBNVVNUIGJlCiAgICAgICAgICAgIHVuaXF1ZSB3aXRoaW4gdGhlIHNjb3BlLgoKICAgICAgICAgICAgV2hpbGUgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgZG9lcyBub3QgcmVzdWx0IGluIGEgcHJvcGVydHkKICAgICAgICAgICAgb2YgdGhlIHJlbGF0aW9uc2hpcCwgaXQgaXMgUkVDT01NRU5ERUQgdG8gYXZvaWQgdXNpbmcgdGhlIG5hbWUgb2YgYW4KICAgICAgICAgICAgZXhpc3RpbmcgdHlwZSBwcm9wZXJ0eSBhcyByb2xlIG5hbWUgdG8gYXZvaWQgcG90ZW50aWFsIGFtYmlndWl0aWVzCiAgICAgICAgICAgIGJldHdlZW4gcHJvcGVydGllcyBvZiBhIHR5cGUsIGFuZCByb2xlcyBvZiBhIHJlbGF0aW9uc2hpcCBvbiB0aGUKICAgICAgICAgICAgdHlwZS4KCiAgICAgICAgICAgIFRoZSBhcmd1bWVudCBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQS1zaWRlIHJlc2lkZXMuCiAgICAgICAgICAgIElmIHRoZSB0eXBlIGlzIGRlY2xhcmVkIGluIGFub3RoZXIgbW9kdWxlLCB0aGUgdHlwZSBtdXN0IGJlCiAgICAgICAgICAgIHByZWZpeGVkLCBhbmQgYSBjb3JyZXNwb25kaW5nICdpbXBvcnQnIHN0YXRlbWVudCBiZSB1c2VkIHRvIGRlY2xhcmUKICAgICAgICAgICAgdGhlIHByZWZpeC4iOwoKICAgICAgICBhcmd1bWVudCBhU2lkZVR5cGU7CiAgICB9CgogICAgZXh0ZW5zaW9uIGJTaWRlIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAiRGVmaW5lcyB0aGUgQi1zaWRlIG9mIGEgcmVsYXRpb25zaGlwLgoKICAgICAgICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgYSAnbGVhZicgb3IgJ2xlYWYtbGlzdCcKICAgICAgICAgICAgc3RhdGVtZW50LCB3aGljaCBpdHNlbGYgbXVzdCBiZSBhIHN1YnN0YXRlbWVudCBvZiB0aGUKICAgICAgICAgICAgJ3VuaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudC4KCiAgICAgICAgICAgIFRoZSBkYXRhIHR5cGUgb2YgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgTVVTVCBiZQogICAgICAgICAgICAnaW5zdGFuY2UtaWRlbnRpZmllcicuIENvbnN0cmFpbnRzIE1BWSBiZSB1c2VkIGFzIHBhcnQgb2YgdGhlIHBhcmVudAogICAgICAgICAgICAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgdG8gZW5mb3JjZSBjYXJkaW5hbGl0eS4KCiAgICAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIGlzIHVzZWQgYXMgbmFtZQogICAgICAgICAgICBvZiB0aGUgcm9sZSBvZiB0aGUgQi1zaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBuYW1lIG9mIHRoZSByb2xlCiAgICAgICAgICAgIGlzIHNjb3BlZCB0byB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQi1zaWRlIGlzIGRlZmluZWQgYW5kIE1VU1QgYmUKICAgICAgICAgICAgdW5pcXVlIHdpdGhpbiB0aGUgc2NvcGUuCgogICAgICAgICAgICBXaGlsZSB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBkb2VzIG5vdCByZXN1bHQgaW4gYSBwcm9wZXJ0eQogICAgICAgICAgICBvZiB0aGUgcmVsYXRpb25zaGlwLCBpdCBpcyBSRUNPTU1FTkRFRCB0byBhdm9pZCB1c2luZyB0aGUgbmFtZSBvZiBhbgogICAgICAgICAgICBleGlzdGluZyB0eXBlIHByb3BlcnR5IGFzIHJvbGUgbmFtZSB0byBhdm9pZCBwb3RlbnRpYWwgYW1iaWd1aXRpZXMKICAgICAgICAgICAgYmV0d2VlbiBwcm9wZXJ0aWVzIG9mIGEgdHlwZSwgYW5kIHJvbGVzIG9mIGEgcmVsYXRpb25zaGlwIG9uIHRoZQogICAgICAgICAgICB0eXBlLgoKICAgICAgICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIG9uIHdoaWNoIHRoZSBCLXNpZGUgcmVzaWRlcy4KICAgICAgICAgICAgSWYgdGhlIHR5cGUgaXMgZGVjbGFyZWQgaW4gYW5vdGhlciBtb2R1bGUsIHRoZSB0eXBlIG11c3QgYmUKICAgICAgICAgICAgcHJlZml4ZWQsIGFuZCBhIGNvcnJlc3BvbmRpbmcgJ2ltcG9ydCcgc3RhdGVtZW50IGJlIHVzZWQgdG8gZGVjbGFyZQogICAgICAgICAgICB0aGUgcHJlZml4LiI7CgogICAgICAgIGFyZ3VtZW50IGJTaWRlVHlwZTsKICAgIH0KCiAgICBleHRlbnNpb24gZG9tYWluIHsKICAgICAgICBkZXNjcmlwdGlvbiAiS2V5d29yZCB1c2VkIHRvIGNhcnJ5IGRvbWFpbiBpbmZvcm1hdGlvbi4iOwogICAgICAgIGFyZ3VtZW50IGRvbWFpbk5hbWU7CiAgICB9CgogICAgZXh0ZW5zaW9uIGxhYmVsIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAiVGhlIGxhYmVsIGNhbiBiZSB1c2VkIHRvIGdpdmUgbW9kdWxlcyBhbmQgc3VibW9kdWxlcyBhIHNlbWFudGljCiAgICAgICAgICAgIHZlcnNpb24sIGluIGFkZGl0aW9uIHRvIHRoZWlyIHJldmlzaW9uLgoKICAgICAgICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgbGFiZWwgaXMgP3gueS56PyA/IGV4cHJlc3NlZCBhcyBwYXR0ZXJuLCBpdCBpcwogICAgICAgICAgICBbMC05XStcXC5bMC05XStcXC5bMC05XSsKCiAgICAgICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZSByZXZpc2lvbiBzdGF0ZW1lbnQuCiAgICAgICAgICAgIFplcm8gb3Igb25lIHJldmlzaW9uIGxhYmVsIHN0YXRlbWVudHMgcGVyIHBhcmVudCBzdGF0ZW1lbnQgYXJlCiAgICAgICAgICAgIGFsbG93ZWQuCgogICAgICAgICAgICBSZXZpc2lvbiBsYWJlbHMgTVVTVCBiZSB1bmlxdWUgYW1vbmdzdCBhbGwgcmV2aXNpb25zIG9mIGEgbW9kdWxlIG9yCiAgICAgICAgICAgIHN1Ym1vZHVsZS4iOwoKICAgICAgICBhcmd1bWVudCBzZW12ZXJzaW9uOwogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-oam-ran	urn:o-ran:smo-teiv-rel-oam-ran	REL_OAM_RAN	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-ran"]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1vYW0tcmFuIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1yZWwtb2FtLXJhbiI7CiAgICBwcmVmaXggb3ItdGVpdi1yZWwtb2FtcmFuOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7IHByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgeyBwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LW9hbSB7IHByZWZpeCBvci10ZWl2LW9hbTsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1yYW4geyBwcmVmaXggb3ItdGVpdi1yYW47IH0KCiAgICBvcmdhbml6YXRpb24gIk9SQU4iOwogICAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gTyZNIHRvIExvZ2ljYWwgdG9wb2xvZ3kgbW9kZWwuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIE8mTSB0byBMb2dpY2FsIHRvcG9sb2d5IHJlbGF0aW9ucwoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJFTF9PQU1fUkFOOwoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19FTk9ERUJGVU5DVElPTiB7ICAgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgbWFuYWdlZC1lbm9kZWJGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYW5hZ2VkIEVsZW1lbnQgbWFuYWdlcyBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIG1hbmFnZWQtYnktbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIG1hbmFnZWQgYnkgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpFTm9kZUJGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBNQU5BR0VERUxFTUVOVF9NQU5BR0VTX0dOQkRVRlVOQ1RJT04geyAgICAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBtYW5hZ2VkLWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IG1hbmFnZXMgZ05vZGVCLURVIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LW9hbTpNYW5hZ2VkRWxlbWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBtYW5hZ2VkLWJ5LW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBtYW5hZ2VkIGJ5IE1hbmFnZWQgRWxlbWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46R05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBNQU5BR0VERUxFTUVOVF9NQU5BR0VTX0dOQkNVQ1BGVU5DVElPTiB7ICAgIC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IG1hbmFnZWQtZ25iY3VjcEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBtYW5hZ2VzIGdOb2RlQi1DVS1DUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgbWFuYWdlZC1ieS1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtQ1AgRnVuY3Rpb24gbWFuYWdlZCBieSBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBNQU5BR0VERUxFTUVOVF9NQU5BR0VTX0dOQkNVVVBGVU5DVElPTiB7ICAgIC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IG1hbmFnZWQtZ25iY3V1cEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBtYW5hZ2VzIGdOb2RlQi1DVS1VUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgbWFuYWdlZC1ieS1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtVVAgRnVuY3Rpb24gbWFuYWdlZCBieSBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVVVBGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-common-yang-types	urn:o-ran:smo-teiv-common-yang-types	\N	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyI7CiAgICBwcmVmaXggb3ItdGVpdi10eXBlczsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7IHByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgY29tbW9uIHR5cGVzIG1vZGVsCgogIFRoaXMgbW9kZWwgY29udGFpbnMgcmUtdXNhYmxlIGRhdGEgdHlwZXMgdGhhdCB0b3BvbG9neSBhbmQgaW52ZW50b3J5IG1vZGVscwogIHdpbGwgZnJlcXVlbnRseSB1c2UgYXMgcGFydCBvZiB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4KCiAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0yNCIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIGdyb3VwaW5nIFRvcF9HcnBfVHlwZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIkdyb3VwaW5nIGNvbnRhaW5pbmcgdGhlIGtleSBhdHRyaWJ1dGUgY29tbW9uIHRvIGFsbCB0eXBlcy4KICAgICAgICAgICAgQWxsIHR5cGVzIE1VU1QgdXNlIHRoaXMgZ3JvdXBpbmcuIjsKCiAgICAgICAgbGVhZiBpZCB7CiAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pcXVlIGlkZW50aWZpZXIgb2YgdG9wb2xvZ3kgZW50aXRpZXMuIFJlcHJlc2VudHMgdGhlCiAgICAgICAgICAgICAgICBFbnRpdHkgSW5zdGFuY2UgSWRlbnRpZmllci4iOwogICAgICAgIH0KICAgIH0KCiAgICBjb250YWluZXIgZGVjb3JhdG9ycyB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIlRoaXMgY29udGFpbmVyIHNlcnZlcyBhcyBleHRlbnNpb24gcG9pbnQgZm9yIGFwcGxpY2F0aW9ucyB3aXNoaW5nCiAgICAgICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gZGVjb3JhdG9ycy4gVGhpcyBpcyBkb25lIHZpYSBhdWdtZW50YXRpb25zLiBUaGV5CiAgICAgICAgICAgIGNhbiBvbmx5IGJlIGRlZmluZWQgaW4gbmFtZSB2YWx1ZSBwYWlyLgoKICAgICAgICAgICAgVGhpcyBpcyBhIGNvbnN1bWVyIGRhdGEgYW5kIGNhbiBiZSBhdHRhY2hlZCB0byBUb3BvbG9neSBFbnRpdHkgb3IKICAgICAgICAgICAgVG9wb2xvZ3kgUmVsYXRpb24gaW5zdGFuY2UsIG91dHNpZGUgb2YgdGhlIGRlY2xhcmVkIFRvcG9sb2d5IEVudGl0eQogICAgICAgICAgICBvciBUb3BvbG9neSBSZWxhdGlvbnNoaXAncyBhdHRyaWJ1dGVzLiBUaGlzIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQsCiAgICAgICAgICAgIGFuZCBpdCBNVVNUIE5PVCBiZSBhdWdtZW50ZWQgb3IgZGV2aWF0ZWQgaW4gYW55IHdheSwgdW5sZXNzIHN0YXRlZAogICAgICAgICAgICBvdGhlcndpc2UuIjsKICAgIH0KCiAgICBsZWFmLWxpc3QgY2xhc3NpZmllcnMgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJDb25zdW1lciBkZWZpbmVkIHRhZ3MgdG8gdG9wb2xvZ3kgZW50aXRpZXMgYW5kIHJlbGF0aW9uc2hpcHMuCgogICAgICAgICAgICBUaGlzIGlzIGEgY29uc3VtZXIgZGF0YSBhbmQgY2FuIGJlIGF0dGFjaGVkIHRvIFRvcG9sb2d5IEVudGl0eSBvcgogICAgICAgICAgICBUb3BvbG9neSBSZWxhdGlvbiBpbnN0YW5jZSwgb3V0c2lkZSBvZiB0aGUgZGVjbGFyZWQgVG9wb2xvZ3kgRW50aXR5CiAgICAgICAgICAgIG9yIFRvcG9sb2d5IFJlbGF0aW9uc2hpcCdzIGF0dHJpYnV0ZXMuIFRoaXMgY2Fubm90IGJlIGluc3RhbnRpYXRlZCwKICAgICAgICAgICAgYW5kIGl0IE1VU1QgTk9UIGJlIGF1Z21lbnRlZCBvciBkZXZpYXRlZCBpbiBhbnkgd2F5LCB1bmxlc3Mgc3RhdGVkCiAgICAgICAgICAgIG90aGVyd2lzZS4iOwoKICAgICAgICB0eXBlIGlkZW50aXR5cmVmIHsgYmFzZSBjbGFzc2lmaWVyOyB9CiAgICB9CgogICAgbGVhZi1saXN0IHNvdXJjZUlkcyB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkFuIG9yZGVyZWQgbGlzdCBvZiBpZGVudGl0aWVzIHRoYXQgcmVwcmVzZW50IHRoZSBzZXQgb2YgbmF0aXZlCiAgICAgICAgICAgIHNvdXJjZSBpZGVudGlmaWVycyBmb3IgcGFydGljaXBhdGluZyBlbnRpdGllcy4KCiAgICAgICAgICAgIFRoaXMgaXMgYSBjb25zdW1lciBkYXRhIGFuZCBjYW4gYmUgYXR0YWNoZWQgdG8gVG9wb2xvZ3kgRW50aXR5IG9yCiAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkKICAgICAgICAgICAgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4gVGhpcyBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLAogICAgICAgICAgICBhbmQgaXQgTVVTVCBOT1QgYmUgYXVnbWVudGVkIG9yIGRldmlhdGVkIGluIGFueSB3YXksIHVubGVzcyBzdGF0ZWQKICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CgogICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgIG9yZGVyZWQtYnkgdXNlcjsKICAgIH0KCiAgICBjb250YWluZXIgbWV0YWRhdGEgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJUaGlzIGNvbnRhaW5lciBzZXJ2ZXMgYXMgZXh0ZW5zaW9uIHBvaW50IHRvIGRlZmluZSBtZXRhZGF0YS4gVGhleQogICAgICAgICAgICBjYW4gb25seSBiZSBkZWZpbmVkIGluIG5hbWUgdmFsdWUgcGFpci4KCiAgICAgICAgICAgIFRoaXMgaXMgYSBjb25zdW1lciBkYXRhIGFuZCBjYW4gYmUgYXR0YWNoZWQgdG8gVG9wb2xvZ3kgRW50aXR5IG9yCiAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkKICAgICAgICAgICAgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4gVGhpcyBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLAogICAgICAgICAgICBhbmQgaXQgTVVTVCBOT1QgYmUgYXVnbWVudGVkIG9yIGRldmlhdGVkIGluIGFueSB3YXksIHVubGVzcyBzdGF0ZWQKICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CiAgICB9CgogICAgaWRlbnRpdHkgY2xhc3NpZmllcnsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNsYXNzaWZpZXIgaXMgdXNlZCBhcyBhIGJhc2UgdG8gcHJvdmlkZSBhbGwgY2xhc3NpZmllcnMKICAgICAgICAgICAgd2l0aCBpZGVudGl0eS4gIjsKICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-oam	urn:o-ran:smo-teiv-oam	OAM	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbSB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbTsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHsgcHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbiAKICAgICJSQU4gTyZNIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gTyZNIGRvbWFpbiwgd2hpY2ggYXJlIGludGVuZGVkIHRvIHJlcHJlc2VudCBtYW5hZ2VtZW50IHN5c3RlbXMKICAgIGFuZCBtYW5hZ2VtZW50IGludGVyZmFjZXMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIE9BTTsKCiAgICBsaXN0IE1hbmFnZWRFbGVtZW50IHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBNYW5hZ2VkIEVsZW1lbnQgKE1FKSBpcyBhIG5vZGUgaW50byBhIHRlbGVjb21tdW5pY2F0aW9uCiAgICAgICAgICAgIG5ldHdvcmsgcHJvdmlkaW5nIHN1cHBvcnQgYW5kL29yIHNlcnZpY2UgdG8gc3Vic2NyaWJlcnMuIEFuIE1FCiAgICAgICAgICAgIGNvbW11bmljYXRlcyB3aXRoIGEgbWFuYWdlciBhcHBsaWNhdGlvbiAoZGlyZWN0bHkgb3IgaW5kaXJlY3RseSkKICAgICAgICAgICAgb3ZlciBvbmUgb3IgbW9yZSBpbnRlcmZhY2VzIGZvciB0aGUgcHVycG9zZSBvZiBiZWluZyBtb25pdG9yZWQKICAgICAgICAgICAgYW5kL29yIGNvbnRyb2xsZWQuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-ran	urn:o-ran:smo-teiv-ran	RAN	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LXJhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogICAgaW1wb3J0IGlldGYtZ2VvLWxvY2F0aW9uIHsKICAgICAgICBwcmVmaXggZ2VvOwogICAgICAgIHJlZmVyZW5jZSAiUkZDIDkxNzk6IEEgWUFORyBHcm91cGluZyBmb3IgR2VvZ3JhcGhpYyBMb2NhdGlvbnMiOwogICAgfQoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gTG9naWNhbCBkb21haW4sIHdoaWNoIHJlcHJlc2VudHMgdGhlIGZ1bmN0aW9uYWwgY2FwYWJpbGl0eQogICAgb2YgdGhlIGRlcGxveWVkIFJBTiB0aGF0IGFyZSByZWxldmFudCB0byByQXBwcyB1c2UgY2FzZXMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJBTjsKCiAgICBsaXN0IEdOQkRVRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgIEEgZ05CIG1heSBjb25zaXN0IG9mIGEgZ05CLUNlbnRyYWxpemVkIFVuaXQgKGdOQi1DVSkgYW5kIGEgZ05CLURVLgogICAgICAgICAgICBUaGUgQ1UgcHJvY2Vzc2VzIG5vbi1yZWFsIHRpbWUgcHJvdG9jb2xzIGFuZCBzZXJ2aWNlcywgYW5kIHRoZSBEVQogICAgICAgICAgICBwcm9jZXNzZXMgUEhZIGxldmVsIHByb3RvY29sIGFuZCByZWFsIHRpbWUgc2VydmljZXMuIFRoZSBnTkItQ1UgYW5kCiAgICAgICAgICAgIHRoZSBnTkItRFUgdW5pdHMgYXJlIGNvbm5lY3RlZCB2aWEgRjEgbG9naWNhbCBpbnRlcmZhY2UuCgogICAgICAgICAgICBUaGUgZm9sbG93aW5nIGlzIHRydWUgZm9yIGEgZ05CLURVOgogICAgICAgICAgICBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1DUCB0aHJvdWdoIHRoZSBGMS1DIGludGVyZmFjZS4gSXMKICAgICAgICAgICAgY29ubmVjdGVkIHRvIHRoZSBnTkItQ1UtVVAgdGhyb3VnaCB0aGUgRjEtVSBpbnRlcmZhY2UuIE9uZSBnTkItRFUgaXMKICAgICAgICAgICAgY29ubmVjdGVkIHRvIG9ubHkgb25lIGdOQi1DVS1DUC4gT25lIGdOQi1EVSBjYW4gYmUgY29ubmVjdGVkIHRvCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1DVS1VUHMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLgoKICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMgYW5kCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1EVXMuIGdOQi1EVSBpcyBhIGNvbmNyZXRlIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUgTkctUkFOCiAgICAgICAgICAgIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZQogICAgICAgICAgICB0aGUgZ05CLURVIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBjb250YWluZXIgZFVwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB1c2VkIGFzIHBhcnQgb2YgUE0gRXZlbnRzIGRhdGEiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQkRVSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgRFUgd2l0aGluIGEgZ05vZGVCIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBHTkJDVUNQRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgQ2VudHJhbGl6ZWQgVW5pdCBDb250cm9sIFBsYW5lIChnTkItQ1UtQ1ApCgogICAgICAgICAgICBUaGlzIGlzIGEgbG9naWNhbCBub2RlIGhvc3RpbmcgdGhlIFJhZGlvIFJlc291cmNlIENvbnRyb2wgKFJSQykgYW5kCiAgICAgICAgICAgIHRoZSBjb250cm9sIHBsYW5lIHBhcnQgb2YgdGhlIFBhY2tldCBEYXRhIENvbnZlcmdlbmNlIFByb3RvY29sCiAgICAgICAgICAgIChQRENQKSBvZiB0aGUgZ05vZGVCIENlbnRyYWxpemVkIFVuaXQgKGdOQi1DVSkgZm9yIGFuIEUtVVRSQU4gZ05vZGVCCiAgICAgICAgICAgIChlbi1nTkIpIG9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLUNQIHRlcm1pbmF0ZXMgdGhlIEUxCiAgICAgICAgICAgIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLVVQIGFuZCB0aGUgRjEtQyBpbnRlcmZhY2UKICAgICAgICAgICAgY29ubmVjdGVkIHdpdGggdGhlIGdOb2RlQiBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1DUDoKICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItRFUgdGhyb3VnaCB0aGUgRjEtQyBpbnRlcmZhY2UuIElzIGNvbm5lY3RlZAogICAgICAgICAgICB0byB0aGUgZ05CLUNVLVVQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4gT25seSBvbmUgZ05CLUNVLUNQIGlzCiAgICAgICAgICAgIGNvbm5lY3RlZCB0byBvbmUgZ05CLURVLiBPbmx5IG9uZSBnTkItQ1UtQ1AgaXMgY29ubmVjdGVkIHRvIG9uZQogICAgICAgICAgICBnTkItQ1UtVVAuIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBnTkItQ1UtVVBzIHVuZGVyCiAgICAgICAgICAgIHRoZSBjb250cm9sIG9mIHRoZSBzYW1lIGdOQi1DVS1DUC5PbmUgZ05CLUNVLVVQIGNhbiBiZSBjb25uZWN0ZWQgdG8KICAgICAgICAgICAgbXVsdGlwbGUgRFVzIHVuZGVyIHRoZSBjb250cm9sIG9mIHRoZSBzYW1lIGdOQi1DVS1DUC4KCiAgICAgICAgICAgIE5vdGU6IEEgZ05CIG1heSBjb25zaXN0IG9mIGEgZ05CLUNVLUNQLCBtdWx0aXBsZSBnTkItQ1UtVVBzIGFuZAogICAgICAgICAgICBtdWx0aXBsZSBnTkItRFVzLiBBIGdOQi1DVS1DUCBpcyBhIGNvbmNyZXRlIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUKICAgICAgICAgICAgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kCiAgICAgICAgICAgIGRlbGV0ZSB0aGUgZ05CLUNVLUNQIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGdOQkNVTmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBnTm9kZUItQ1UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB0byBiZSB1c2VkIGFzIHBhcnQgb2YgZ2xvYmFsIFJBTgogICAgICAgICAgICAgICAgICAgIG5vZGUgaWRlbnRpdHkiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgR05CQ1VVUEZ1bmN0aW9uIHsKICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCIENlbnRyYWxpemVkIFVuaXQgVXNlciBQbGFuZSAoZ05CLUNVLVVQKQoKICAgICAgICAgICAgQSBnTkItQ1UtVVAgaXMgYSBsb2dpY2FsIG5vZGUgaG9zdGluZyB0aGUgVXNlciBQbGFuZSBwYXJ0IG9mIHRoZQogICAgICAgICAgICBQYWNrZXQgRGF0YSBDb252ZXJnZW5jZSwgUHJvdG9jb2wgKFBEQ1ApIG9mIHRoZSBnTm9kZUIgQ2VudHJhbGl6ZWQKICAgICAgICAgICAgVW5pdCAoZ05CLUNVKSBmb3IgYW4gRS1VVFJBTiBnTm9kZUIgKGVuLWdOQiksIGFuZCB0aGUgVXNlciBQbGFuZQogICAgICAgICAgICBwYXJ0IG9mIHRoZSBQRENQIHByb3RvY29sIGFuZCB0aGUgU2VydmljZSBEYXRhIEFkYXB0YXRpb24gUHJvdG9jb2wKICAgICAgICAgICAgKFNEQVApIG9mIHRoZSBnTkItQ1UgZm9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLVVQIHRlcm1pbmF0ZXMKICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLUNQIGFuZCB0aGUgRjEtVSBpbnRlcmZhY2UKICAgICAgICAgICAgY29ubmVjdGVkIHdpdGggdGhlIGdOb2RlQiBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1VUDoKICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItRFUgdGhyb3VnaCB0aGUgRjEtVSBpbnRlcmZhY2UuIElzIGNvbm5lY3RlZAogICAgICAgICAgICB0byB0aGUgZ05CLUNVLUNQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4gT25lIGdOQi1DVS1VUCBpcwogICAgICAgICAgICBjb25uZWN0ZWQgdG8gb25seSBvbmUgZ05CLUNVLUNQLiBPbmUgZ05CLURVIGNhbiBiZSBjb25uZWN0ZWQgdG8KICAgICAgICAgICAgbXVsdGlwbGUgZ05CLUNVLVVQcyB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc2FtZSBnTkItQ1UtQ1AuIE9uZQogICAgICAgICAgICBnTkItQ1UtVVAgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBEVXMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlCiAgICAgICAgICAgIHNhbWUgZ05CLUNVLUNQLgoKICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMgYW5kCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1EVXMuIEEgZ05CLUNVLVVQIGlzIGEgY29uY3JldGUgY2xhc3MgdGhhdCBleHRlbmRzIHRoZQogICAgICAgICAgICBORy1SQU4gbm9kZSBvYmplY3QuIEluIFRvcG9sb2d5LCB5b3UgY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQKICAgICAgICAgICAgZGVsZXRlIHRoZSBnTkItQ1UtVVAgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOUkNlbGxDVSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gTlIgQ2VsbCBpbiBnTm9kZUItQ1UuCgogICAgICAgICAgICA1RyBOUiBpcyBhIG5ldyByYWRpbyBhY2Nlc3MgdGVjaG5vbG9neSAoUkFUKSBkZXZlbG9wZWQgYnkgM0dQUCBmb3IKICAgICAgICAgICAgdGhlIDVHIChmaWZ0aCBnZW5lcmF0aW9uKSBtb2JpbGUgbmV0d29yay4gSXQgaXMgZGVzaWduZWQgdG8gYmUgdGhlCiAgICAgICAgICAgIGdsb2JhbCBzdGFuZGFyZCBmb3IgdGhlIGFpciBpbnRlcmZhY2Ugb2YgNUcgbmV0d29ya3MuCgogICAgICAgICAgICA1RyBOUiBoYXMgc3luY2hyb25pemF0aW9uIHNpZ25hbCB0aGF0IGlzIGtub3duIGFzIFByaW1hcnkKICAgICAgICAgICAgU3luY2hyb25pemF0aW9uIFNpZ25hbCAoUFNTKSBhbmQgU2Vjb25kYXJ5IFN5bmNocm9uaXphdGlvbgogICAgICAgICAgICBTaWduYWwgKFNTUykuIFRoZXNlIHNpZ25hbHMgYXJlIHNwZWNpZmljIHRvIE5SIHBoeXNpY2FsIGxheWVyIGFuZAogICAgICAgICAgICBwcm92aWRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgVUUgZm9yIGRvd25saW5rCiAgICAgICAgICAgIHN5bmNocm9uaXphdGlvbjogUFNTIHByb3ZpZGVzIFJhZGlvIEZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZiAxc3QKICAgICAgICAgICAgU3ltYm9sIGluIGEgUmFkaW8gZnJhbWUpIFNTUyBwcm92aWRlcyBTdWJmcmFtZSBCb3VuZGFyeSAoUG9zaXRpb24gb2YKICAgICAgICAgICAgMXN0IFN5bWJvbCBpbiBhIFN1YmZyYW1lKSBQaHlzaWNhbCBMYXllciBDZWxsIElEIChQQ0kpIGluZm9ybWF0aW9uCiAgICAgICAgICAgIHVzaW5nIGJvdGggUFNTIGFuZCBTU1MuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBjZWxsTG9jYWxJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVXNlZCB0b2dldGhlciB3aXRoIGdOb2RlQiBpZGVudGlmaWVyIHRvIGlkZW50aWZ5IE5SCiAgICAgICAgICAgICAgICAgICAgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyIHdpdGggZ05CSWQgdG8gZm9ybSBOQ0kuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBwbG1uSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gSUQgZm9yIE5SIENHSS4gSWYgZW1wdHksCiAgICAgICAgICAgICAgICAgICAgR05CQ1VDUEZ1bmN0aW9uOjpwTE1OSWQgaXMgdXNlZCBmb3IgUExNTiBJRCBpbiBOUiBDR0kiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5DSSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbCBJZGVudGl0eSI7CiAgICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5SQ2VsbERVIHsKICAgICAgICBkZXNjcmlwdGlvbiAiUmVwcmVzZW50cyBhbiBOUiBDZWxsIGluIGdOb2RlQi1EVS4KCiAgICAgICAgICAgIDVHIE5SIGlzIGEgbmV3IHJhZGlvIGFjY2VzcyB0ZWNobm9sb2d5IChSQVQpIGRldmVsb3BlZCBieSAzR1BQIGZvcgogICAgICAgICAgICB0aGUgNUcgKGZpZnRoIGdlbmVyYXRpb24pIG1vYmlsZSBuZXR3b3JrLiBJdCBpcyBkZXNpZ25lZCB0byBiZSB0aGUKICAgICAgICAgICAgZ2xvYmFsIHN0YW5kYXJkIGZvciB0aGUgYWlyIGludGVyZmFjZSBvZiA1RyBuZXR3b3Jrcy4KCiAgICAgICAgICAgIDVHIE5SIGhhcyBzeW5jaHJvbml6YXRpb24gc2lnbmFsIHRoYXQgaXMga25vd24gYXMgUHJpbWFyeQogICAgICAgICAgICBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChQU1MpIGFuZCBTZWNvbmRhcnkgU3luY2hyb25pemF0aW9uIHNpZ25hbAogICAgICAgICAgICAoU1NTKS4gVGhlc2Ugc2lnbmFscyBhcmUgc3BlY2lmaWMgdG8gTlIgcGh5c2ljYWwgbGF5ZXIgYW5kIHByb3ZpZGUKICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSBVRSBmb3IgZG93bmxpbmsKICAgICAgICAgICAgc3luY2hyb25pemF0aW9uOiBQU1MgcHJvdmlkZXMgUmFkaW8gRnJhbWUgQm91bmRhcnkgKFBvc2l0aW9uIG9mIDFzdAogICAgICAgICAgICBTeW1ib2wgaW4gYSBSYWRpbyBmcmFtZSkgU1NTIHByb3ZpZGVzIFN1YmZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZgogICAgICAgICAgICAxc3QgU3ltYm9sIGluIGEgU3ViZnJhbWUpIFBoeXNpY2FsIExheWVyIENlbGwgSUQgKFBDSSkgaW5mb3JtYXRpb24KICAgICAgICAgICAgdXNpbmcgYm90aCBQU1MgYW5kIFNTUy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGNlbGxMb2NhbElkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJVc2VkIHRvZ2V0aGVyIHdpdGggZ05vZGVCIGlkZW50aWZpZXIgdG8gaWRlbnRpZnkgTlIKICAgICAgICAgICAgICAgICAgICBjZWxsIGluIFBMTU4uIFVzZWQgdG9nZXRoZXIgd2l0aCBnTkJJZCB0byBmb3JtIE5DSS4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBuQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwgSWRlbnRpdHkuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgblJQQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBQaHlzaWNhbCBDZWxsIElkZW50aXR5IChQQ0kpIG9mIHRoZSBOUiBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBFTm9kZUJGdW5jdGlvbiB7CiAgICAgICAgZGVzY3JpcHRpb24gIkFuIEV2b2x2ZWQgTm9kZSBCIChlTm9kZUIpIGlzIHRoZSBvbmx5IG1hbmRhdG9yeSBub2RlIGluCiAgICAgICAgICAgIHRoZSByYWRpbyBhY2Nlc3MgbmV0d29yayAoUkFOKSBvZiBMb25nLVRlcm0gRXZvbHV0aW9uIChMVEUpLiBUaGUKICAgICAgICAgICAgZU5vZGVCIGlzIGEgY29tcGxleCBiYXNlIHN0YXRpb24gdGhhdCBoYW5kbGVzIHJhZGlvIGNvbW11bmljYXRpb25zCiAgICAgICAgICAgIGluIHRoZSBjZWxsIGFuZCBjYXJyaWVzIG91dCByYWRpbyByZXNvdXJjZSBtYW5hZ2VtZW50IGFuZCBoYW5kb3ZlcgogICAgICAgICAgICBkZWNpc2lvbnMuIFVubGlrZSAyLzNHIHdpcmVsZXNzIFJBTiwgdGhlcmUgaXMgbm8gY2VudHJhbGl6ZWQgcmFkaW8KICAgICAgICAgICAgbmV0d29yayBjb250cm9sbGVyIGluIExURS4gSXQgaXMgdGhlIGhhcmR3YXJlIHRoYXQgaXMgY29ubmVjdGVkIHRvCiAgICAgICAgICAgIHRoZSBtb2JpbGUgcGhvbmUgbmV0d29yayB0aGF0IGNvbW11bmljYXRlcyBkaXJlY3RseSB3aXRoIG1vYmlsZQogICAgICAgICAgICBoYW5kc2V0cyAoVXNlciBFcXVpcG1lbnQpLCBsaWtlIGEgYmFzZSB0cmFuc2NlaXZlciBzdGF0aW9uIChCVFMpIGluCiAgICAgICAgICAgIEdTTSBuZXR3b3Jrcy4gVGhpcyBzaW1wbGlmaWVzIHRoZSBhcmNoaXRlY3R1cmUgYW5kIGFsbG93cyBsb3dlcgogICAgICAgICAgICByZXNwb25zZSB0aW1lcy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGVOQklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRU5vZGVCIElEIHRoYXQgZm9ybXMgcGFydCBvZiB0aGUgQ2VsbCBHbG9iYWwKICAgICAgICAgICAgICAgICAgICBJZGVudGl0eSwgYW5kIGlzIGFsc28gdXNlZCB0byBpZGVudGlmeSB0aGUgbm9kZSBvdmVyIHRoZSBTMQogICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgZU5vZGVCUGxtbklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRU5vZGVCIFB1YmxpYyBMYW5kIE1vYmlsZSBOZXR3b3JrIChQTE1OKSBJRAogICAgICAgICAgICAgICAgICAgIHRoYXQgZm9ybXMgcGFydCBvZiB0aGUgRU5vZGVCIEdsb2JhbCBJRCB1c2VkIHRvIGlkZW50aWZ5IHRoZQogICAgICAgICAgICAgICAgICAgIG5vZGUgb3ZlciB0aGUgUzEgaW50ZXJmYWNlLiBOb3RlOiBUaGUgdmFsdWUKICAgICAgICAgICAgICAgICAgICAoTUNDPTAwMSwgTU5DPTAxKSBpbmRpY2F0ZXMgdGhhdCB0aGUgUExNTiBpcyBub3QgaW5pdGlhdGVkLgogICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBjYW4gbm90IGJlIHVzZWQgYXMgYSB2YWxpZCBQTE1OIElkZW50aXR5LiI7CgogICAgICAgICAgICAgICAgbGVhZiBtY2MgewogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgTUNDIHBhcnQgb2YgYSBQTE1OIGlkZW50aXR5IHVzZWQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvIG5ldHdvcmsuIjsKICAgICAgICAgICAgICAgICAgICB0eXBlIGludDMyIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgMC4uOTk5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxlYWYgbW5jIHsKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE1OQyBwYXJ0IG9mIGEgUExNTiBpZGVudGl0eSB1c2VkIGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uY0xlbmd0aCB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBsZW5ndGggb2YgdGhlIE1OQyBwYXJ0IG9mIGEgUExNTiBpZGVudGl0eQogICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDIuLjM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgRVV0cmFuQ2VsbCB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gRkREIG9yIFRERCBFVXRyYW5DZWxsIGFuZAogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHBhcmFtZXRlcnMgbmVlZGVkIGJ5IHRoZSBjZWxsLgogICAgICAgICAgICAgICAgICAgIEl0IGFsc28gY29udGFpbnMgcGFyYW1ldGVycyBmb3IgdGhlCiAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IGNvbW1vbiBjaGFubmVscy4gQW4gRVVUUkFOIHN0YW5kcwogICAgICAgICAgICAgICAgICAgIGZvciBFdm9sdmVkIFVuaXZlcnNhbCBNb2JpbGUgVGVsZWNvbW11bmljYXRpb25zCiAgICAgICAgICAgICAgICAgICAgU3lzdGVtIChVTVRTKSBUZXJyZXN0cmlhbCBSYWRpbyBBY2Nlc3MgTmV0d29yawogICAgICAgICAgICAgICAgICAgIHdoaWNoIGNvbnRhaW5zIGFuIGVOb2RlQi4gVGhlIGVOb2RlQiBjb25jcmV0ZQogICAgICAgICAgICAgICAgICAgIGNsYXNzIGlzIGV4dGVuZGVkIGZyb20gdGhlIEVVVFJBTiBOb2RlIGFic3RyYWN0IGNsYXNzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgY2VsbElkewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJCUyBpbnRlcm5hbCBJRCBhdHRyaWJ1dGUgZm9yIEVVdHJhbkNlbGwuIE11c3QgYmUKICAgICAgICAgICAgICAgICAgICB1bmlxdWUgaW4gdGhlIFJCUy4gVG9nZXRoZXIgd2l0aCB0aGUgTm9kZSBJRCBhbmQgUHVibGljCiAgICAgICAgICAgICAgICAgICAgTGFuZCBNb2JpbGUgTmV0d29yayAoUExNTikgdGhpcyBpcyBhIHVuaXZlcnNhbGx5IHVuaXF1ZQogICAgICAgICAgICAgICAgICAgIGNlbGwgSUQiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY25kbCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNoYW5uZWwgbnVtYmVyIGZvciB0aGUgY2VudHJhbCBkb3dubGluawogICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeS4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY251bCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2hhbm5lbCBudW1iZXIgZm9yIHRoZSBjZW50cmFsIHVwbGluayBmcmVxdWVuY3kiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBkbENoYW5uZWxCYW5kd2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBkb3dubGluayBjaGFubmVsIGJhbmR3aWR0aCBpbiB0aGUgRkREIGNlbGwuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWFyZmNuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRS1VVFJBIEFic29sdXRlIFJhZGlvIEZyZXF1ZW5jeSBDaGFubmVsIE51bWJlcgogICAgICAgICAgICAgICAgICAgIChFQVJGQ04pIGZvciB0aGUgVEREIGNlbGwiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBjaGFubmVsQmFuZHdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY2hhbm5lbCBiYW5kd2lkdGggaW4gdGhlIFRERCBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRhYyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVHJhY2tpbmcgQXJlYSBDb2RlIGZvciB0aGUgRVV0cmFuIENlbGwiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBkdXBsZXhUeXBlIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJJbmRpY2F0b3Igb2YgRVV0cmFuQ2VsbCB0eXBlLCBGREQgb3IgVEREIjsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgIGVudW0gZmRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkZERCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gdGRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRERCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTlJTZWN0b3JDYXJyaWVyIHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE5SIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgZGVmaW5pbmcgdGhlIGxvZ2ljYWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYQogICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkIHdpdGggYSBiYXNlIHN0YXRpb24KICAgICAgICAgICAgaGF2aW5nIGl0cyBvd24gYW50ZW5uYXMsIHJhZGlvIHBvcnRzLCBhbmQgY29udHJvbCBjaGFubmVscy4gVGhlCiAgICAgICAgICAgIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbCBpbnRlcmZlcmVuY2UKICAgICAgICAgICAgaW4gY2VsbHVsYXIgc3lzdGVtcywgYW5kIG1vc3Qgd2lyZWxlc3Mgc3lzdGVtcyB1c2UgdGhyZWUgc2VjdG9yCiAgICAgICAgICAgIGNlbGxzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgYXJmY25ETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwgTnVtYmVyCiAgICAgICAgICAgICAgICAgICAgKE5SLUFSRkNOKSBmb3IgZG93bmxpbmsiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBhcmZjblVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBBYnNvbHV0ZSBSYWRpbyBmcmVxdWVuY3kgQ2hhbm5lbCBOdW1iZXIKICAgICAgICAgICAgICAgICAgICAoTlItQVJGQ04pIGZvciB1cGxpbmsuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZnJlcXVlbmN5REwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJGIFJlZmVyZW5jZSBGcmVxdWVuY3kgb2YgZG93bmxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGZyZXF1ZW5jeVVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSRiBSZWZlcmVuY2UgRnJlcXVlbmN5IG9mIHVwbGluayBjaGFubmVsIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgYlNDaGFubmVsQndETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQlMgQ2hhbm5lbCBiYW5kd2lkdGggaW4gTUh6IGZvciBkb3dubGluay4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IExURVNlY3RvckNhcnJpZXIgewogICAgICAgIGRlc2NyaXB0aW9uICJUaGUgTFRFIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgZGVmaW5pbmcgdGhlIGxvZ2ljYWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYQogICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkIHdpdGggYSBiYXNlIHN0YXRpb24KICAgICAgICAgICAgaGF2aW5nIGl0cyBvd24gYW50ZW5uYXMsIHJhZGlvIHBvcnRzLCBhbmQgY29udHJvbCBjaGFubmVscy4gVGhlCiAgICAgICAgICAgIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbCBpbnRlcmZlcmVuY2UKICAgICAgICAgICAgaW4gY2VsbHVsYXIgc3lzdGVtcywgYW5kIG1vc3Qgd2lyZWxlc3Mgc3lzdGVtcyB1c2UgdGhyZWUgc2VjdG9yCiAgICAgICAgICAgIGNlbGxzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgc2VjdG9yQ2FycmllclR5cGUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgc2VjdG9yIGNhcnJpZXIKICAgICAgICAgICAgICAgICAgICBtb2RlbGxlZCBieSBNTyBTZWN0b3JDYXJyaWVyIGlzIGEgZGlnaXRhbCBzZWN0b3IuIjsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgIGVudW0gbm9ybWFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOb3QgYSBkaWdpdGFsIHNlY3RvciI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gbGVmdF9kaWdpdGFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMZWZ0IGRpZ2l0YWwgc2VjdG9yIGZvciAyRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHJpZ2h0X2RpZ2l0YWxfc2VjdG9yIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMjsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJpZ2h0IGRpZ2l0YWwgc2VjdG9yIGZvciAyRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZnRfZGlnaXRhbF9zZWN0b3JfM2RzIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMzsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlZnQgZGlnaXRhbCBzZWN0b3IgZm9yIDNEUyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gcmlnaHRfZGlnaXRhbF9zZWN0b3JfM2RzIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgNDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJpZ2h0IGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIG1pZGRsZV9kaWdpdGFsX3NlY3Rvcl8zZHMgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA1OwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWlkZGxlIGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEFudGVubmFDYXBhYmlsaXR5IHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBNTyBzZXJ2ZXMgYXMgYSBtYXBwaW5nIGJldHdlZW4gdGhlIGNlbGwgYW5kIHRoZSBSQlMKICAgICAgICAgICAgZXF1aXBtZW50IHVzZWQgdG8gcHJvdmlkZSBjb3ZlcmFnZSBpbiBhIGNlcnRhaW4gZ2VvZ3JhcGhpY2FsIGFyZWEuCiAgICAgICAgICAgIFRoZSBNTyBhbHNvIGNvbnRyb2xzIHRoZSBtYXhpbXVtIG91dHB1dCBwb3dlciBvZiB0aGUgc2VjdG9yLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYtbGlzdCBlVXRyYW5GcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIExURSBmcmVxdWVuY3kgYmFuZHMgdGhhdCBhc3NvY2lhdGVkCiAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgc3VwcG9ydHMiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYtbGlzdCBnZXJhbkZxQmFuZHMgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2YgR0VSQU4gZnJlcXVlbmN5IGJhbmRzIHRoYXQgYXNzb2NpYXRlZAogICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgblJGcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIE5SIGZyZXF1ZW5jeSBiYW5kcyBhc3NvY2lhdGVkIGhhcmR3YXJlCiAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHMiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBTZWN0b3IgewogICAgICAgIGRlc2NyaXB0aW9uICJBIGdyb3VwIG9mIGNvLWxvY2F0ZWQgQ2VsbHMgdGhhdCBoYXZlIGEgc2hhcmVkCiAgICAgICAgICAgIGNvdmVyYWdlIGFyZWEuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBzZWN0b3JJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pdmVyc2FsbHkgdW5pcXVlIElEIGdlbmVyYXRlZCBieSB0aGUgc2VjdG9yJ3MKICAgICAgICAgICAgICAgICAgICBkaXNjb3ZlcnkgbWVjaGFuaXNtLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQ2NDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgbGVhZiBhemltdXRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBdmVyYWdlIHZhbHVlIG9mIHRoZSBhemltdXRocyBvZiB0aGUgY2VsbHMKICAgICAgICAgICAgICAgICAgICBjb21wcmlzaW5nIHRoZSBzZWN0b3IsIGRldGVybWluZWQgZHVyaW5nIHNlY3RvciBkaXNjb3ZlcnkuIjsKICAgICAgICAgICAgICAgIHR5cGUgZGVjaW1hbDY0ewogICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uLWRpZ2l0cyA2OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdW5pdHMgImRlZ3JlZXMiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEVOT0RFQkZVTkNUSU9OX1BST1ZJREVTX0VVVFJBTkNFTEwgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBwcm92aWRlcyBFVVRSQU4gQ2VsbC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiRVVUUkFOIENlbGwgcHJvdmlkZWQgYnkgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBFVXRyYW5DZWxsOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEVOT0RFQkZVTkNUSU9OX1BST1ZJREVTX0xURVNFQ1RPUkNBUlJJRVIgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1sdGVTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBwcm92aWRlcyBMVEUgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEVOb2RlQkZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWVub2RlYkZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxURSBTZWN0b3IgQ2FycmllciBwcm92aWRlZCBieSBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CRFVGVU5DVElPTl9QUk9WSURFU19OUkNFTExEVSB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBwcm92aWRlcyBOUiBDZWxsLURVLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBHTkJEVUZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSBwcm92aWRlZCBieSBnTm9kZUItRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SQ2VsbERVOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEdOQkRVRlVOQ1RJT05fUFJPVklERVNfTlJTRUNUT1JDQVJSSUVSIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBwcm92aWRlcyBOUiBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgR05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIFNlY3RvciBDYXJyaWVyIHByb3ZpZGVkIGJ5IGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEdOQkNVQ1BGVU5DVElPTl9QUk9WSURFU19OUkNFTExDVSB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLW5yQ2VsbEN1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVUNQIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIENlbGwtQ1UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1nbmJjdWNwRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1DVSBwcm92aWRlZCBieSBnTm9kZUItQ1VDUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsQ1U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRVVUUkFOQ0VMTF9VU0VTX0xURVNFQ1RPUkNBUlJJRVIgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCB1c2VkLWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiRVVUUkFOIENlbGwgdXNlcyBMVEUgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEVVdHJhbkNlbGw7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdXNlZC1ieS1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxURSBTZWN0b3IgQ2FycmllciB1c2VkIGJ5IEVVVFJBTiBDZWxsLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBMVEVTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTFRFU0VDVE9SQ0FSUklFUl9VU0VTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHVzZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHVzZXMgQW50ZW5uYSBDYXBhYmlsaXR5LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBMVEVTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1ieS1sdGVTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgQ2FwYWJpbGl0eSB1c2VkIGJ5IExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQW50ZW5uYUNhcGFiaWxpdHk7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOUkNFTExEVV9VU0VTX05SU0VDVE9SQ0FSUklFUiB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHVzZWQtbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwtRFUgdXNlcyBOUiBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdXNlZC1ieS1uckNlbGxEdSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBTZWN0b3IgQ2FycmllciB1c2VkIGJ5IE5SIENlbGwtRFUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5SU0VDVE9SQ0FSUklFUl9VU0VTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHVzZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgU2VjdG9yIENhcnJpZXIgdXNlcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5SU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHVzZWQtYnktbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgQ2FwYWJpbGl0eSB1c2VkIGJ5IE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBBbnRlbm5hQ2FwYWJpbGl0eTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIFNFQ1RPUl9HUk9VUFNfTlJDRUxMRFUgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgTlIgQ2VsbC1EVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgU2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwtRFUgZ3JvdXBlZCBieSBTZWN0b3IuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SQ2VsbERVOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19FVVRSQU5DRUxMIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZ3JvdXBlZC1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgRVVUUkFOIENlbGwuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIFNlY3RvcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBncm91cGVkLWJ5LXNlY3RvciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgRVV0cmFuQ2VsbDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-equipment-ran	urn:o-ran:smo-teiv-rel-equipment-ran	REL_EQUIPMENT_RAN	["o-ran-smo-teiv-equipment", "o-ran-smo-teiv-ran"]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1lcXVpcG1lbnQtcmFuIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1yZWwtZXF1aXBtZW50LXJhbiI7CiAgICBwcmVmaXggb3ItdGVpdi1yZWwtZXF1aXByYW47CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsgcHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7IHByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtZXF1aXBtZW50IHsgcHJlZml4IG9yLXRlaXYtZXF1aXA7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtcmFuIHsgcHJlZml4IG9yLXRlaXYtcmFuOyB9CgoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbiAKICAgICJSQU4gRXF1aXBtZW50IHRvIExvZ2ljYWwgdG9wb2xvZ3kgbW9kZWwuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIEVxdWlwbWVudCB0byBMb2dpY2FsIHRvcG9sb2d5CiAgICBlbnRpdGllcyBhbmQgcmVsYXRpb25zLgoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJFTF9FUVVJUE1FTlRfUkFOOwoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQU5URU5OQU1PRFVMRV9TRVJWRVNfQU5URU5OQUNBUEFCSUxJVFkgeyAvLyAwLi5uIHRvIDAuLm0KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aWNlZC1hbnRlbm5hQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIENhcGFiaWxpdHkgc2VydmljZWQgYnkgdGhpcyBBbnRlbm5hIE1vZHVsZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1lcXVpcDpBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1hbnRlbm5hTW9kdWxlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIHNlcnZlcyB0aGlzIEFudGVubmEgQ2FwYWJpbGl0eS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46QW50ZW5uYUNhcGFiaWxpdHk7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBTRUNUT1JfR1JPVVBTX0FOVEVOTkFNT0RVTEUgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLWFudGVubmFNb2R1bGUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VjdG9yIGdyb3VwcyBBbnRlbm5hIE1vZHVsZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1yYW46U2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIGdyb3VwZWQgYnkgU2VjdG9yLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LWVxdWlwOkFudGVubmFNb2R1bGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-equipment	urn:o-ran:smo-teiv-equipment	EQUIPMENT	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtZXF1aXBtZW50IjsKICAgIHByZWZpeCBvci10ZWl2LWVxdWlwOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7cHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7cHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIGltcG9ydCBpZXRmLWdlby1sb2NhdGlvbiB7CiAgICAgICAgcHJlZml4IGdlbzsKICAgICAgICByZWZlcmVuY2UgIlJGQyA5MTc5OiBBIFlBTkcgR3JvdXBpbmcgZm9yIEdlb2dyYXBoaWMgTG9jYXRpb25zIjsKICAgIH0KCiAgICBvcmdhbml6YXRpb24gIk9SQU4iOwogICAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gRXF1aXBtZW50IHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gRXF1aXBtZW50IGRvbWFpbiwgd2hpY2ggaXMgbW9kZWxsZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGh5c2ljYWwKICAgIGxvY2F0aW9uIG9mIGVxdWlwbWVudCBzdWNoIGFzIGFudGVubmFzIGFzc29jaWF0ZWQgd2l0aCBhIGNlbGwvY2FycmllcgogICAgYW5kIHRoZWlyIHJlbGV2YW50IHByb3BlcnRpZXMgZS5nLiB0aWx0LCBtYXggcG93ZXIgZXRjLgoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIEVRVUlQTUVOVDsKCiAgICBsaXN0IEFudGVubmFNb2R1bGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBbiBBbnRlbm5hIE1vZHVsZSByZXByZXNlbnRzIHRoZSBwaHlzaWNhbCBhc3BlY3Qgb2YgYW4KICAgICAgICAgICAgYW50ZW5uYS4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGFudGVubmFNb2RlbE51bWJlciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVmVuZG9yLXNwZWNpZmljIGFudGVubmEgbW9kZWwgaWRlbnRpZmllci4gVGhpcwogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMgbm8KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25hbCBpbXBhY3QuIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG1lY2hhbmljYWxBbnRlbm5hQmVhcmluZyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBiZWFyaW5nIG9uIGFudGVubmEgc3VidW5pdCB3aGVyZSBhbnRlbm5hCiAgICAgICAgICAgICAgICAgICAgdW5pdCBpcyBpbnN0YWxsZWQuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbWVjaGFuaWNhbEFudGVubmFUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgZml4ZWQgYW50ZW5uYSB0aWx0IG9mIHRoZSBpbnN0YWxsYXRpb24sIGRlZmluZWQKICAgICAgICAgICAgICAgICAgICBhcyB0aGUgaW5jbGluYXRpb24gb2YgdGhlIGFudGVubmEgZWxlbWVudCByZXNwZWN0IHRvIHRoZQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsIHBsYW5lLiBJdCBpcyBhIHNpZ25lZCB2YWx1ZS4gUG9zaXRpdmUgaW5kaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgZG93bnRpbHQsIGFuZCBuZWdhdGl2ZSBpbmRpY2F0ZXMgdXB0aWx0LiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHBvc2l0aW9uV2l0aGluU2VjdG9yIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIHVuaXQgcG9zaXRpb24gd2l0aGluIHNlY3Rvci4gVGhpcyBhdHRyaWJ1dGUKICAgICAgICAgICAgICAgICAgICBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMgbm8gb3BlcmF0aW9uYWwKICAgICAgICAgICAgICAgICAgICBpbXBhY3QuIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRvdGFsVGlsdCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVG90YWwgYW50ZW5uYSBlbGV2YXRpb24gaW5jbHVkaW5nIHRoZSBpbnN0YWxsZWQKICAgICAgICAgICAgICAgICAgICB0aWx0IGFuZCB0aGUgdGlsdCBhcHBsaWVkIGJ5IHRoZSBSZW1vdGUgRWxlY3RyaWNhbAogICAgICAgICAgICAgICAgICAgIFRpbHQgKFJFVCkuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWxlY3RyaWNhbEFudGVubmFUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFbGVjdHJpY2FsbHktY29udHJvbGxlZCB0aWx0IG9mIG1haW4gYmVhbSBtYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgd2l0aCByZXNwZWN0IHRvIGRpcmVjdGlvbiBvcnRob2dvbmFsIHRvIGFudGVubmEgZWxlbWVudAogICAgICAgICAgICAgICAgICAgIGF4aXMgKHNlZSAzR1BQIFRTIDI1LjQ2NikuIFZhbHVlIGlzIHNpZ25lZDsgdGlsdCBkb3duIGlzCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmUsIHRpbHQgdXAgaXMgbmVnYXRpdmUuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYtbGlzdCBhbnRlbm5hQmVhbVdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgYW5ndWxhciBzcGFuIG9mIHRoZSBtYWluIGxvYmUgb2YgdGhlIGFudGVubmEKICAgICAgICAgICAgICAgICAgICByYWRpYXRpb24gcGF0dGVybiBpbiB0aGUgaG9yaXpvbnRhbCBwbGFuZS4gTWVhc3VyZWQgaW4KICAgICAgICAgICAgICAgICAgICBkZWdyZWVzLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IFNpdGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBIHNpdGUgaXMgYSBwaHlzaWNhbCBsb2NhdGlvbiB3aGVyZSBhbiBlcXVpcG1lbnQgY2FuIGJlCiAgICAgICAgICAgIGluc3RhbGxlZC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBBTlRFTk5BTU9EVUxFX0lOU1RBTExFRF9BVF9TSVRFIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIGluc3RhbGxlZC1hdC1zaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIGluc3RhbGxlZCBhdCBTaXRlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgaW5zdGFsbGVkLWFudGVubmFNb2R1bGUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2l0ZSB3aGVyZSBBbnRlbm5hIE1vZHVsZSBpcyBpbnN0YWxsZWQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-oam-cloud	urn:o-ran:smo-teiv-rel-oam-cloud	REL_OAM_CLOUD	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-cloud"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1vYW0tY2xvdWQgewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LXJlbC1vYW0tY2xvdWQiOwogICAgcHJlZml4IG9yLXRlaXYtb2FtdG9jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtb2FtIHtwcmVmaXggb3ItdGVpdi1vYW07IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY2xvdWQge3ByZWZpeCBvci10ZWl2LWNsb3VkOyB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uIAogICAgIlJBTiBPJk0gdG8gQ2xvdWQgdG9wb2xvZ3kgbW9kZWwuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIE8mTSB0byBDbG91ZCB0b3BvbG9neSByZWxhdGlvbnMKCiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgRXJpY3Nzb24KICAgIE1vZGlmaWNhdGlvbnMgQ29weXJpZ2h0IChDKSAyMDI0IE9wZW5JbmZyYSBGb3VuZGF0aW9uIEV1cm9wZQoKICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsCiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIG9yLXRlaXYteWV4dDpkb21haW4gUkVMX09BTV9DTE9VRDsKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE1BTkFHRURFTEVNRU5UX0RFUExPWUVEX0FTX0NMT1VESUZJRURORiB7ICAvLyAwLi4xIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtYXMtY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBkZXBsb3llZCBhcyBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LW9hbTpNYW5hZ2VkRWxlbWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBkZXBsb3llZC1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZGlmaWVkIE5GIGRlcGxveXMgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LWNsb3VkOkNsb3VkaWZpZWRORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX01BTkFHRURFTEVNRU5UIHsgLy8gMS4ubiB0byAxCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHNlcnZpY2VkLW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBzZXJ2aWNlZCBieSB0aGlzIE5GIERlcGxveW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtY2xvdWQ6TkZEZXBsb3ltZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-cloud	urn:o-ran:smo-teiv-cloud	CLOUD	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jbG91ZCI7CiAgICBwcmVmaXggb3ItdGVpdi1jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgaWV0Zi1nZW8tbG9jYXRpb24gewogICAgICAgIHByZWZpeCBnZW87CiAgICAgICAgcmVmZXJlbmNlICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucyI7CiAgICB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gQ0xPVUQgZG9tYWluLCB3aGljaCBjb21wcmlzZXMgY2xvdWQgaW5mcmFzdHJ1Y3R1cmUgYW5kCiAgICBkZXBsb3ltZW50IGFzcGVjdHMgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgdG9wb2xvZ3kgbW9kZWwuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEOwoKICAgIGxpc3QgQ2xvdWRpZmllZE5GIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBSQU4gTmV0d29yayBGdW5jdGlvbiBzb2Z0d2FyZSB0aGF0IGlzIGRlcGxveWVkIGluIHRoZSBPLUNsb3VkIHZpYSBvbmUgb3IgbW9yZSBORiBEZXBsb3ltZW50cy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWRpZmllZCBORiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5GRGVwbG95bWVudCB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgc29mdHdhcmUgZGVwbG95bWVudCBvbiBPLUNsb3VkIHJlc291cmNlcyB0aGF0IHJlYWxpemVzLCBhbGwgb3IgcGFydCBvZiwgYSBDbG91ZGlmaWVkIE5GLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBORiBEZXBsb3ltZW50IjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQ2xvdWROYW1lc3BhY2UgewogICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZE5hbWVzcGFjZSBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpc29sYXRpbmcKICAgICAgICAgICAgICAgICAgICBncm91cHMgb2YgcmVzb3VyY2VzIHdpdGhpbiBhIHNpbmdsZSBjbHVzdGVyLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBDbG91ZCBOYW1lc3BhY2UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOb2RlQ2x1c3RlciB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgTm9kZUNsdXN0ZXIgbWFuYWdlcyBhIGNvbGxlY3Rpb24gb2YgTm9kZXMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIE5vZGUgQ2x1c3RlciI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IENsb3VkU2l0ZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQKICAgICAgICAgICAgICAgICAgICBob3N0cyB0aGUgTkYgRGVwbG95bWVudC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWQgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBDTE9VRElGSUVETkZfQ09NUFJJU0VTX05GREVQTE9ZTUVOVCB7IC8vIDEgdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGNvbXByaXNlZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWRpZmllZCBORiBjb21wcmlzZXMgb2YgdGhlc2UgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBjb21wcmlzZWQtYnktY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgcGFydCBvZiBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTkZERVBMT1lNRU5UX0RFUExPWUVEX09OX0NMT1VETkFNRVNQQUNFIHsgLy8gMS4ubiB0byAxLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtb24tY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCBkZXBsb3llZCBvbiBDbG91ZCBOYW1lc3BhY2UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBkZXBsb3llZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQ0xPVUROQU1FU1BBQ0VfREVQTE9ZRURfT05fTk9ERUNMVVNURVIgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtb24tbm9kZUNsdXN0ZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveWVkIG9uIE5vZGUgQ2x1c3Rlci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm9kZSBDbHVzdGVyIGRlcGxveXMgQ2xvdWQgTmFtZXNwYWNlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOb2RlQ2x1c3RlcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOT0RFQ0xVU1RFUl9MT0NBVEVEX0FUX0NMT1VEU0lURSB7IC8vIDEuLm4gdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGxvY2F0ZWQtYXQtY2xvdWRTaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5vZGUgQ2x1c3RlciBsb2NhdGVkIGF0IENsb3VkIFNpdGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5vZGVDbHVzdGVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGxvY2F0aW9uLW9mLW5vZGVDbHVzdGVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkIFNpdGUgaXMgbG9jYXRpb24gb2YgTm9kZSBDbHVzdGVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBDbG91ZFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-cloud-ran	urn:o-ran:smo-teiv-rel-cloud-ran	REL_CLOUD_RAN	["o-ran-smo-teiv-cloud", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1jbG91ZC1yYW4gewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LXJlbC1jbG91ZC1yYW4iOwogICAgcHJlZml4IG9yLXRlaXYtY2xvdWR0b3JhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY2xvdWQge3ByZWZpeCBvci10ZWl2LWNsb3VkOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LXJhbiB7cHJlZml4IG9yLXRlaXYtcmFuOyB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvIFJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIFJBTiBDbG91ZCB0byBSQU4gTG9naWNhbCB0b3BvbG9neSByZWxhdGlvbnMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJFTF9DTE9VRF9SQU47CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX0dOQkRVRlVOQ1RJT04geyAvLyAwLi5uIHRvIDAuLm0KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aWNlZC1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQkRVIEZ1bmN0aW9uIHNlcnZpY2VkIGJ5IHRoaXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1jbG91ZDpORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aW5nLW5GRGVwbG95bWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJORiBEZXBsb3ltZW50IHRoYXQgc2VydmVzIHRoaXMgZ05vZGVCRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX0dOQkNVQ1BGVU5DVElPTiB7IC8vIDAuLm4gdG8gMC4ubQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHNlcnZpY2VkLWduYmN1Y3BGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtQ1AgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBORiBEZXBsb3ltZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LWNsb3VkOk5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBnTm9kZUJDVUNQIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVUNQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX0dOQkNVVVBGVU5DVElPTiB7IC8vIDAuLm4gdG8gMC4ubQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHNlcnZpY2VkLWduYmN1dXBGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtVVAgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBORiBEZXBsb3ltZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LWNsb3VkOk5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBnTm9kZUJDVVVQIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVVVQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
 \.
 
 COPY ties_model.entity_info("name", "moduleReferenceName") FROM stdin;
-GNBCUUPFunction	o-ran-smo-teiv-ran
-ENodeBFunction	o-ran-smo-teiv-ran
-Sector	o-ran-smo-teiv-ran
-LTESectorCarrier	o-ran-smo-teiv-ran
-NRCellDU	o-ran-smo-teiv-ran
+ManagedElement	o-ran-smo-teiv-oam
 GNBDUFunction	o-ran-smo-teiv-ran
-NRCellCU	o-ran-smo-teiv-ran
-EUtranCell	o-ran-smo-teiv-ran
 GNBCUCPFunction	o-ran-smo-teiv-ran
+GNBCUUPFunction	o-ran-smo-teiv-ran
+NRCellCU	o-ran-smo-teiv-ran
+NRCellDU	o-ran-smo-teiv-ran
+ENodeBFunction	o-ran-smo-teiv-ran
+EUtranCell	o-ran-smo-teiv-ran
 NRSectorCarrier	o-ran-smo-teiv-ran
+LTESectorCarrier	o-ran-smo-teiv-ran
 AntennaCapability	o-ran-smo-teiv-ran
+Sector	o-ran-smo-teiv-ran
+AntennaModule	o-ran-smo-teiv-equipment
+Site	o-ran-smo-teiv-equipment
+CloudifiedNF	o-ran-smo-teiv-cloud
+NFDeployment	o-ran-smo-teiv-cloud
 CloudNamespace	o-ran-smo-teiv-cloud
 NodeCluster	o-ran-smo-teiv-cloud
 CloudSite	o-ran-smo-teiv-cloud
-NFDeployment	o-ran-smo-teiv-cloud
-CloudifiedNF	o-ran-smo-teiv-cloud
-ManagedElement	o-ran-smo-teiv-oam
-Site	o-ran-smo-teiv-equipment
-AntennaModule	o-ran-smo-teiv-equipment
-PhysicalNF	o-ran-smo-teiv-equipment
 \.
 
 COPY ties_model.relationship_info("name", "aSideAssociationName", "aSideMOType", "aSideMinCardinality", "aSideMaxCardinality", "bSideAssociationName", "bSideMOType", "bSideMinCardinality", "bSideMaxCardinality", "associationKind", "relationshipDataLocation", "connectSameEntity", "moduleReferenceName") FROM stdin;
-ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	provided-lteSectorCarrier	ENodeBFunction	1	1	provided-by-enodebFunction	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
 ENODEBFUNCTION_PROVIDES_EUTRANCELL	provided-euTranCell	ENodeBFunction	1	1	provided-by-enodebFunction	EUtranCell	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-SECTOR_GROUPS_EUTRANCELL	grouped-euTranCell	Sector	0	1	grouped-by-sector	EUtranCell	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-SECTOR_GROUPS_ANTENNAMODULE	grouped-antennaModule	Sector	0	1	grouped-by-sector	AntennaModule	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-SECTOR_GROUPS_NRCELLDU	grouped-nrCellDu	Sector	0	1	grouped-by-sector	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	provided-lteSectorCarrier	ENodeBFunction	1	1	provided-by-enodebFunction	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+GNBDUFUNCTION_PROVIDES_NRCELLDU	provided-nrCellDu	GNBDUFunction	1	1	provided-by-gnbduFunction	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	provided-nrSectorCarrier	GNBDUFunction	1	1	provided-by-gnbduFunction	NRSectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+GNBCUCPFUNCTION_PROVIDES_NRCELLCU	provided-nrCellCu	GNBCUCPFunction	1	1	provided-by-gnbcucpFunction	NRCellCU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+EUTRANCELL_USES_LTESECTORCARRIER	used-lteSectorCarrier	EUtranCell	0	1	used-by-euTranCell	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
 LTESECTORCARRIER_USES_ANTENNACAPABILITY	used-antennaCapability	LTESectorCarrier	0	9223372036854775807	used-by-lteSectorCarrier	AntennaCapability	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-ran
 NRCELLDU_USES_NRSECTORCARRIER	used-nrSectorCarrier	NRCellDU	0	1	used-by-nrCellDu	NRSectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	provided-nrSectorCarrier	GNBDUFunction	1	1	provided-by-gnbduFunction	NRSectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-GNBDUFUNCTION_PROVIDES_NRCELLDU	provided-nrCellDu	GNBDUFunction	1	1	provided-by-gnbduFunction	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-EUTRANCELL_USES_LTESECTORCARRIER	used-lteSectorCarrier	EUtranCell	0	1	used-by-euTranCell	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-GNBCUCPFUNCTION_PROVIDES_NRCELLCU	provided-nrCellCu	GNBCUCPFunction	1	1	provided-by-gnbcucpFunction	NRCellCU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
 NRSECTORCARRIER_USES_ANTENNACAPABILITY	used-antennaCapability	NRSectorCarrier	0	9223372036854775807	used-by-nrSectorCarrier	AntennaCapability	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-ran
+SECTOR_GROUPS_NRCELLDU	grouped-nrCellDu	Sector	0	1	grouped-by-sector	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+SECTOR_GROUPS_EUTRANCELL	grouped-euTranCell	Sector	0	1	grouped-by-sector	EUtranCell	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+ANTENNAMODULE_INSTALLED_AT_SITE	installed-at-site	AntennaModule	0	9223372036854775807	installed-antennaModule	Site	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-equipment
+MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	deployed-as-cloudifiedNF	ManagedElement	1	1	deployed-managedElement	CloudifiedNF	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-rel-oam-cloud
+NFDEPLOYMENT_SERVES_MANAGEDELEMENT	serviced-managedElement	NFDeployment	1	9223372036854775807	serving-nFDeployment	ManagedElement	1	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-rel-oam-cloud
+MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	managed-enodebFunction	ManagedElement	1	1	managed-by-managedElement	ENodeBFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	managed-gnbduFunction	ManagedElement	1	1	managed-by-managedElement	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	managed-gnbcucpFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	managed-gnbcuupFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+ANTENNAMODULE_SERVES_ANTENNACAPABILITY	serviced-antennaCapability	AntennaModule	0	9223372036854775807	serving-antennaModule	AntennaCapability	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-equipment-ran
+SECTOR_GROUPS_ANTENNAMODULE	grouped-antennaModule	Sector	0	1	grouped-by-sector	AntennaModule	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-equipment-ran
+NFDEPLOYMENT_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-cloud-ran
+CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	comprised-nFDeployment	CloudifiedNF	1	1	comprised-by-cloudifiedNF	NFDeployment	1	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-cloud
+NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	deployed-on-cloudNamespace	NFDeployment	1	9223372036854775807	deployed-nFDeployment	CloudNamespace	1	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud
 CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	deployed-on-nodeCluster	CloudNamespace	1	9223372036854775807	deployed-cloudNamespace	NodeCluster	1	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-cloud
 NODECLUSTER_LOCATED_AT_CLOUDSITE	located-at-cloudSite	NodeCluster	1	9223372036854775807	location-of-nodeCluster	CloudSite	1	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud
-NFDEPLOYMENT_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud-to-ran
-NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	deployed-on-cloudNamespace	NFDeployment	1	9223372036854775807	deployed-nFDeployment	CloudNamespace	1	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud
-NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud-to-ran
-NFDEPLOYMENT_SERVES_MANAGEDELEMENT	serviced-managedElement	NFDeployment	1	9223372036854775807	serving-nFDeployment	ManagedElement	1	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-oam-to-cloud
-NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud-to-ran
-CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	comprised-nFDeployment	CloudifiedNF	1	1	comprised-by-cloudifiedNF	NFDeployment	1	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-cloud
-MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	managed-enodebFunction	ManagedElement	1	1	managed-by-managedElement	ENodeBFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	deployed-as-cloudifiedNF	ManagedElement	1	1	deployed-managedElement	CloudifiedNF	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-oam-to-cloud
-MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	managed-gnbcucpFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	managed-gnbcuupFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	managed-gnbduFunction	ManagedElement	1	1	managed-by-managedElement	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-ANTENNAMODULE_INSTALLED_AT_SITE	installed-at-site	AntennaModule	0	9223372036854775807	installed-antennaModule	Site	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-equipment
-ANTENNAMODULE_SERVES_ANTENNACAPABILITY	serviced-antennaCapability	AntennaModule	0	9223372036854775807	serving-antennaModule	AntennaCapability	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_INSTALLED_AT_SITE	installed-at-site	PhysicalNF	1	9223372036854775807	installed-physicalNF	Site	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-equipment
-PHYSICALNF_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	PhysicalNF	0	1	serving-physicalNF	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_SERVES_ENODEBFUNCTION	serviced-enodebFunction	PhysicalNF	0	1	serving-physicalNF	ENodeBFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	PhysicalNF	0	1	serving-physicalNF	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	PhysicalNF	0	1	serving-physicalNF	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
 \.
 
 ;
 
-COMMIT;
+COMMIT;
\ No newline at end of file
diff --git a/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql b/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
index 554c48e..42c1faf 100644
--- a/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
+++ b/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
@@ -1,22 +1,22 @@
 --
---  ============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
+-- ============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
+--       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.
+-- 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=========================================================
+-- SPDX-License-Identifier: Apache-2.0
+-- ============LICENSE_END=========================================================
 --
 
 BEGIN;
@@ -24,7 +24,7 @@
 CREATE EXTENSION IF NOT EXISTS postgis;
 CREATE EXTENSION IF NOT EXISTS postgis_topology;
 
-GRANT USAGE ON SCHEMA topology TO topology_exposure_user;
+GRANT USAGE ON SCHEMA topology to topology_exposure_user;
 GRANT SELECT ON ALL SEQUENCES IN SCHEMA topology TO topology_exposure_user;
 GRANT SELECT ON ALL TABLES IN SCHEMA topology TO topology_exposure_user;
 
@@ -37,14 +37,14 @@
 
 -- Function to create CONSTRAINT only if it does not exists
 CREATE OR REPLACE FUNCTION ties_data.create_constraint_if_not_exists (
-    t_name TEXT, c_name TEXT, constraint_sql TEXT
+	t_name TEXT, c_name TEXT, constraint_sql TEXT
 )
 RETURNS void AS
 $$
 BEGIN
-    IF NOT EXISTS (SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = t_name AND constraint_name = c_name) THEN
-        EXECUTE constraint_sql;
-    END IF;
+	IF NOT EXISTS (SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = t_name AND constraint_name = c_name) THEN
+		EXECUTE constraint_sql;
+	END IF;
 END;
 $$ language 'plpgsql';
 
@@ -52,12 +52,12 @@
 INSERT INTO ties_model.execution_status("schema", "status") VALUES ('ties_data', 'success');
 
 CREATE TABLE IF NOT EXISTS ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" (
-    "id"            VARCHAR(511),
-    "aSide_AntennaModule"            VARCHAR(511),
-    "bSide_AntennaCapability"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_AntennaModule"			VARCHAR(511),
+	"bSide_AntennaCapability"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -67,15 +67,13 @@
 ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."AntennaCapability" (
-    "id"            VARCHAR(511),
-    "nRFqBands"            jsonb,
-    "cmId"            jsonb,
-    "geranFqBands"            jsonb,
-    "fdn"            TEXT,
-    "eUtranFqBands"            jsonb,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"eUtranFqBands"			jsonb,
+	"geranFqBands"			jsonb,
+	"nRFqBands"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -85,30 +83,28 @@
 ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."AntennaModule" (
-    "id"            VARCHAR(511),
-    "totalTilt"            BIGINT,
-    "cmId"            jsonb,
-    "antennaBeamWidth"            jsonb,
-    "positionWithinSector"            TEXT,
-    "geo-location"            geography,
-    "mechanicalAntennaBearing"            BIGINT,
-    "fdn"            TEXT,
-    "electricalAntennaTilt"            BIGINT,
-    "mechanicalAntennaTilt"            BIGINT,
-    "antennaModelNumber"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_grouped-by-sector"            VARCHAR(511),
-    "REL_ID_SECTOR_GROUPS_ANTENNAMODULE"            VARCHAR(511),
-    "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE"            jsonb,
-    "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE"            jsonb,
-    "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE"            jsonb,
-    "REL_FK_installed-at-site"            VARCHAR(511),
-    "REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE"            VARCHAR(511),
-    "REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE"            jsonb
+	"id"			VARCHAR(511),
+	"antennaModelNumber"			TEXT,
+	"mechanicalAntennaBearing"			BIGINT,
+	"mechanicalAntennaTilt"			BIGINT,
+	"positionWithinSector"			TEXT,
+	"totalTilt"			BIGINT,
+	"electricalAntennaTilt"			BIGINT,
+	"antennaBeamWidth"			jsonb,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_installed-at-site"			VARCHAR(511),
+	"REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE"			VARCHAR(511),
+	"REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE"			jsonb,
+	"REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE"			jsonb,
+	"REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE"			jsonb,
+	"REL_FK_grouped-by-sector"			VARCHAR(511),
+	"REL_ID_SECTOR_GROUPS_ANTENNAMODULE"			VARCHAR(511),
+	"REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE"			jsonb,
+	"REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE"			jsonb,
+	"REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -117,29 +113,29 @@
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '{}';
+
 CREATE TABLE IF NOT EXISTS ties_data."CloudNamespace" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_deployed-on-nodeCluster"            VARCHAR(511),
-    "REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            VARCHAR(511),
-    "REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            jsonb,
-    "REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            jsonb,
-    "REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_deployed-on-nodeCluster"			VARCHAR(511),
+	"REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			VARCHAR(511),
+	"REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			jsonb,
+	"REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			jsonb,
+	"REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -155,12 +151,12 @@
 ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."CloudSite" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "geo-location"            geography,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."CloudSite" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -170,11 +166,11 @@
 ALTER TABLE ONLY ties_data."CloudSite" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."CloudifiedNF" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -184,24 +180,17 @@
 ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."ENodeBFunction" (
-    "id"            VARCHAR(511),
-    "fdn"            TEXT,
-    "cmId"            jsonb,
-    "eNodeBPlmnId"            jsonb,
-    "eNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"eNBId"			BIGINT,
+	"eNodeBPlmnId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -216,37 +205,29 @@
 
 ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."EUtranCell" (
-    "id"            VARCHAR(511),
-    "earfcndl"            BIGINT,
-    "earfcnul"            BIGINT,
-    "cmId"            jsonb,
-    "tac"            BIGINT,
-    "dlChannelBandwidth"            BIGINT,
-    "fdn"            TEXT,
-    "cellId"            BIGINT,
-    "duplexType"            TEXT,
-    "channelBandwidth"            BIGINT,
-    "earfcn"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_provided-by-enodebFunction"            VARCHAR(511),
-    "REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            VARCHAR(511),
-    "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            jsonb,
-    "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            jsonb,
-    "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            jsonb,
-    "REL_FK_grouped-by-sector"            VARCHAR(511),
-    "REL_ID_SECTOR_GROUPS_EUTRANCELL"            VARCHAR(511),
-    "REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL"            jsonb,
-    "REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL"            jsonb,
-    "REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL"            jsonb
+	"id"			VARCHAR(511),
+	"cellId"			BIGINT,
+	"earfcndl"			BIGINT,
+	"earfcnul"			BIGINT,
+	"dlChannelBandwidth"			BIGINT,
+	"earfcn"			BIGINT,
+	"channelBandwidth"			BIGINT,
+	"tac"			BIGINT,
+	"duplexType"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-enodebFunction"			VARCHAR(511),
+	"REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			VARCHAR(511),
+	"REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			jsonb,
+	"REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			jsonb,
+	"REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			jsonb,
+	"REL_FK_grouped-by-sector"			VARCHAR(511),
+	"REL_ID_SECTOR_GROUPS_EUTRANCELL"			VARCHAR(511),
+	"REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL"			jsonb,
+	"REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL"			jsonb,
+	"REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -268,26 +249,19 @@
 ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."GNBCUCPFunction" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "pLMNId"            jsonb,
-    "gNBIdLength"            BIGINT,
-    "fdn"            TEXT,
-    "gNBCUName"            TEXT,
-    "gNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"gNBCUName"			TEXT,
+	"gNBId"			BIGINT,
+	"gNBIdLength"			BIGINT,
+	"pLMNId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -302,31 +276,18 @@
 
 ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."GNBCUUPFunction" (
-    "id"            VARCHAR(511),
-    "fdn"            TEXT,
-    "cmId"            jsonb,
-    "gNBIdLength"            BIGINT,
-    "gNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"gNBId"			BIGINT,
+	"gNBIdLength"			BIGINT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -341,33 +302,20 @@
 
 ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."GNBDUFunction" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "gNBIdLength"            BIGINT,
-    "dUpLMNId"            jsonb,
-    "fdn"            TEXT,
-    "gNBDUId"            BIGINT,
-    "gNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"gNBDUId"			BIGINT,
+	"gNBId"			BIGINT,
+	"gNBIdLength"			BIGINT,
+	"dUpLMNId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -382,35 +330,27 @@
 
 ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."LTESectorCarrier" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "fdn"            TEXT,
-    "sectorCarrierType"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_provided-by-enodebFunction"            VARCHAR(511),
-    "REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            jsonb,
-    "REL_FK_used-antennaCapability"            VARCHAR(511),
-    "REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            VARCHAR(511),
-    "REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_FK_used-by-euTranCell"            VARCHAR(511),
-    "REL_ID_EUTRANCELL_USES_LTESECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER"            jsonb
+	"id"			VARCHAR(511),
+	"sectorCarrierType"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-enodebFunction"			VARCHAR(511),
+	"REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			jsonb,
+	"REL_FK_used-by-euTranCell"			VARCHAR(511),
+	"REL_ID_EUTRANCELL_USES_LTESECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER"			jsonb,
+	"REL_FK_used-antennaCapability"			VARCHAR(511),
+	"REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			VARCHAR(511),
+	"REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -425,30 +365,28 @@
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
+
 CREATE TABLE IF NOT EXISTS ties_data."ManagedElement" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "fdn"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_deployed-as-cloudifiedNF"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            jsonb
+	"id"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_deployed-as-cloudifiedNF"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -464,12 +402,12 @@
 ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_CloudNamespace"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_CloudNamespace"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -479,12 +417,12 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_GNBCUCPFunction"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_GNBCUCPFunction"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -494,12 +432,12 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_GNBCUUPFunction"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_GNBCUUPFunction"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -509,12 +447,12 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_GNBDUFunction"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_GNBDUFunction"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -524,21 +462,21 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDeployment" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_serviced-managedElement"            VARCHAR(511),
-    "REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            VARCHAR(511),
-    "REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            jsonb,
-    "REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            jsonb,
-    "REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            jsonb,
-    "REL_FK_comprised-by-cloudifiedNF"            VARCHAR(511),
-    "REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            VARCHAR(511),
-    "REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            jsonb,
-    "REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            jsonb,
-    "REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_serviced-managedElement"			VARCHAR(511),
+	"REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			VARCHAR(511),
+	"REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_FK_comprised-by-cloudifiedNF"			VARCHAR(511),
+	"REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			VARCHAR(511),
+	"REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -560,12 +498,12 @@
 ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" (
-    "id"            VARCHAR(511),
-    "aSide_NodeCluster"            VARCHAR(511),
-    "bSide_CloudSite"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NodeCluster"			VARCHAR(511),
+	"bSide_CloudSite"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -575,21 +513,19 @@
 ALTER TABLE ONLY ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NRCellCU" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "fdn"            TEXT,
-    "nCI"            BIGINT,
-    "nRTAC"            BIGINT,
-    "plmnId"            jsonb,
-    "cellLocalId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_provided-by-gnbcucpFunction"            VARCHAR(511),
-    "REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            VARCHAR(511),
-    "REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            jsonb,
-    "REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            jsonb,
-    "REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            jsonb
+	"id"			VARCHAR(511),
+	"cellLocalId"			BIGINT,
+	"nCI"			BIGINT,
+	"nRTAC"			BIGINT,
+	"plmnId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-gnbcucpFunction"			VARCHAR(511),
+	"REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			VARCHAR(511),
+	"REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			jsonb,
+	"REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			jsonb,
+	"REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -605,26 +541,24 @@
 ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NRCellDU" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "nCI"            BIGINT,
-    "nRPCI"            BIGINT,
-    "fdn"            TEXT,
-    "cellLocalId"            BIGINT,
-    "nRTAC"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_grouped-by-sector"            VARCHAR(511),
-    "REL_ID_SECTOR_GROUPS_NRCELLDU"            VARCHAR(511),
-    "REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU"            jsonb,
-    "REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU"            jsonb,
-    "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU"            jsonb,
-    "REL_FK_provided-by-gnbduFunction"            VARCHAR(511),
-    "REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU"            VARCHAR(511),
-    "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU"            jsonb,
-    "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU"            jsonb,
-    "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU"            jsonb
+	"id"			VARCHAR(511),
+	"cellLocalId"			BIGINT,
+	"nCI"			BIGINT,
+	"nRPCI"			BIGINT,
+	"nRTAC"			BIGINT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-gnbduFunction"			VARCHAR(511),
+	"REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU"			VARCHAR(511),
+	"REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU"			jsonb,
+	"REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU"			jsonb,
+	"REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU"			jsonb,
+	"REL_FK_grouped-by-sector"			VARCHAR(511),
+	"REL_ID_SECTOR_GROUPS_NRCELLDU"			VARCHAR(511),
+	"REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU"			jsonb,
+	"REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU"			jsonb,
+	"REL_CD_decorators_SECTOR_GROUPS_NRCELLDU"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -633,45 +567,43 @@
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '{}';
+
 CREATE TABLE IF NOT EXISTS ties_data."NRSectorCarrier" (
-    "id"            VARCHAR(511),
-    "bSChannelBwDL"            BIGINT,
-    "cmId"            jsonb,
-    "arfcnDL"            BIGINT,
-    "frequencyUL"            BIGINT,
-    "fdn"            TEXT,
-    "arfcnUL"            BIGINT,
-    "frequencyDL"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_used-by-nrCellDu"            VARCHAR(511),
-    "REL_ID_NRCELLDU_USES_NRSECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER"            jsonb,
-    "REL_FK_provided-by-gnbduFunction"            VARCHAR(511),
-    "REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            jsonb,
-    "REL_FK_used-antennaCapability"            VARCHAR(511),
-    "REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            VARCHAR(511),
-    "REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb
+	"id"			VARCHAR(511),
+	"arfcnDL"			BIGINT,
+	"arfcnUL"			BIGINT,
+	"frequencyDL"			BIGINT,
+	"frequencyUL"			BIGINT,
+	"bSChannelBwDL"			BIGINT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-gnbduFunction"			VARCHAR(511),
+	"REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			jsonb,
+	"REL_FK_used-by-nrCellDu"			VARCHAR(511),
+	"REL_ID_NRCELLDU_USES_NRSECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER"			jsonb,
+	"REL_FK_used-antennaCapability"			VARCHAR(511),
+	"REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			VARCHAR(511),
+	"REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -680,18 +612,18 @@
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '{}';
+
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
@@ -699,11 +631,11 @@
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NodeCluster" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -712,42 +644,14 @@
 
 ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."PhysicalNF" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "geo-location"            geography,
-    "name"            TEXT,
-    "type"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_installed-at-site"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_INSTALLED_AT_SITE"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE"            jsonb
-);
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."Sector" (
-    "id"            VARCHAR(511),
-    "geo-location"            geography,
-    "sectorId"            BIGINT,
-    "azimuth"            DECIMAL,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"sectorId"			BIGINT,
+	"azimuth"			DECIMAL,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -757,13 +661,12 @@
 ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."Site" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "geo-location"            geography,
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -773,548 +676,478 @@
 ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
+	'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
  'PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id',
  'ALTER TABLE ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ADD CONSTRAINT "PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaCapability',
+	'AntennaCapability',
  'PK_AntennaCapability_id',
  'ALTER TABLE ties_data."AntennaCapability" ADD CONSTRAINT "PK_AntennaCapability_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
+	'AntennaModule',
  'PK_AntennaModule_id',
  'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "PK_AntennaModule_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudNamespace',
+	'CloudNamespace',
  'PK_CloudNamespace_id',
  'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "PK_CloudNamespace_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudSite',
+	'CloudSite',
  'PK_CloudSite_id',
  'ALTER TABLE ties_data."CloudSite" ADD CONSTRAINT "PK_CloudSite_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudifiedNF',
+	'CloudifiedNF',
  'PK_CloudifiedNF_id',
  'ALTER TABLE ties_data."CloudifiedNF" ADD CONSTRAINT "PK_CloudifiedNF_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
+	'ENodeBFunction',
  'PK_ENodeBFunction_id',
  'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "PK_ENodeBFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'PK_EUtranCell_id',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "PK_EUtranCell_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
+	'GNBCUCPFunction',
  'PK_GNBCUCPFunction_id',
  'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "PK_GNBCUCPFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
+	'GNBCUUPFunction',
  'PK_GNBCUUPFunction_id',
  'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "PK_GNBCUUPFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
+	'GNBDUFunction',
  'PK_GNBDUFunction_id',
  'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "PK_GNBDUFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'PK_LTESectorCarrier_id',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "PK_LTESectorCarrier_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ManagedElement',
+	'ManagedElement',
  'PK_ManagedElement_id',
  'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "PK_ManagedElement_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+	'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
  'PK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "PK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
  'PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ADD CONSTRAINT "PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
  'PK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ADD CONSTRAINT "PK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
  'PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'PK_NFDeployment_id',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "PK_NFDeployment_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NODECLUSTER_LOCATED_AT_CLOUDSITE',
+	'NODECLUSTER_LOCATED_AT_CLOUDSITE',
  'PK_NODECLUSTER_LOCATED_AT_CLOUDSITE_id',
  'ALTER TABLE ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "PK_NODECLUSTER_LOCATED_AT_CLOUDSITE_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellCU',
+	'NRCellCU',
  'PK_NRCellCU_id',
  'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "PK_NRCellCU_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
+	'NRCellDU',
  'PK_NRCellDU_id',
  'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "PK_NRCellDU_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'PK_NRSectorCarrier_id',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "PK_NRSectorCarrier_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NodeCluster',
+	'NodeCluster',
  'PK_NodeCluster_id',
  'ALTER TABLE ties_data."NodeCluster" ADD CONSTRAINT "PK_NodeCluster_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'PhysicalNF',
- 'PK_PhysicalNF_id',
- 'ALTER TABLE ties_data."PhysicalNF" ADD CONSTRAINT "PK_PhysicalNF_id" PRIMARY KEY ("id");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'Sector',
+	'Sector',
  'PK_Sector_id',
  'ALTER TABLE ties_data."Sector" ADD CONSTRAINT "PK_Sector_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'Site',
+	'Site',
  'PK_Site_id',
  'ALTER TABLE ties_data."Site" ADD CONSTRAINT "PK_Site_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
+	'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
  'FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule',
  'ALTER TABLE ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ADD CONSTRAINT "FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule" FOREIGN KEY ("aSide_AntennaModule") REFERENCES ties_data."AntennaModule" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
+	'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
  'FK_AB3CEA707D389B107F1D10BC724542418E02ABEC',
  'ALTER TABLE ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ADD CONSTRAINT "FK_AB3CEA707D389B107F1D10BC724542418E02ABEC" FOREIGN KEY ("bSide_AntennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
- 'FK_AntennaModule_REL_FK_grouped-by-sector',
- 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "FK_AntennaModule_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
- 'UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE',
- 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE" UNIQUE ("REL_ID_SECTOR_GROUPS_ANTENNAMODULE");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
+	'AntennaModule',
  'FK_AntennaModule_REL_FK_installed-at-site',
  'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "FK_AntennaModule_REL_FK_installed-at-site" FOREIGN KEY ("REL_FK_installed-at-site") REFERENCES ties_data."Site" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
+	'AntennaModule',
  'UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE',
  'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE" UNIQUE ("REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudNamespace',
+	'AntennaModule',
+ 'FK_AntennaModule_REL_FK_grouped-by-sector',
+ 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "FK_AntennaModule_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'AntennaModule',
+ 'UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE',
+ 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE" UNIQUE ("REL_ID_SECTOR_GROUPS_ANTENNAMODULE");'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'CloudNamespace',
  'FK_CloudNamespace_REL_FK_deployed-on-nodeCluster',
  'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "FK_CloudNamespace_REL_FK_deployed-on-nodeCluster" FOREIGN KEY ("REL_FK_deployed-on-nodeCluster") REFERENCES ties_data."NodeCluster" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudNamespace',
+	'CloudNamespace',
  'UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0',
  'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0" UNIQUE ("REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
+	'ENodeBFunction',
  'FK_ENodeBFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "FK_ENodeBFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
+	'ENodeBFunction',
  'UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE',
  'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
- 'FK_ENodeBFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "FK_ENodeBFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
- 'UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION',
- 'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'FK_EUtranCell_REL_FK_provided-by-enodebFunction',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "FK_EUtranCell_REL_FK_provided-by-enodebFunction" FOREIGN KEY ("REL_FK_provided-by-enodebFunction") REFERENCES ties_data."ENodeBFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'UNIQUE_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "UNIQUE_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'FK_EUtranCell_REL_FK_grouped-by-sector',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "FK_EUtranCell_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL" UNIQUE ("REL_ID_SECTOR_GROUPS_EUTRANCELL");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
+	'GNBCUCPFunction',
  'FK_GNBCUCPFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "FK_GNBCUCPFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
+	'GNBCUCPFunction',
  'UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD',
  'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
- 'FK_GNBCUCPFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "FK_GNBCUCPFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
- 'UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION',
- 'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
+	'GNBCUUPFunction',
  'FK_GNBCUUPFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "FK_GNBCUUPFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
+	'GNBCUUPFunction',
  'UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E',
  'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
- 'FK_GNBCUUPFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "FK_GNBCUUPFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
- 'UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION',
- 'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
+	'GNBDUFunction',
  'FK_GNBDUFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "FK_GNBDUFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
+	'GNBDUFunction',
  'UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D',
  'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
- 'FK_GNBDUFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "FK_GNBDUFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
- 'UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION',
- 'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction" FOREIGN KEY ("REL_FK_provided-by-enodebFunction") REFERENCES ties_data."ENodeBFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
- 'FK_LTESectorCarrier_REL_FK_used-antennaCapability',
- 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_used-antennaCapability" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
- 'UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88',
- 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88" UNIQUE ("REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'FK_LTESectorCarrier_REL_FK_used-by-euTranCell',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_used-by-euTranCell" FOREIGN KEY ("REL_FK_used-by-euTranCell") REFERENCES ties_data."EUtranCell" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'UNIQUE_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER" UNIQUE ("REL_ID_EUTRANCELL_USES_LTESECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ManagedElement',
+	'LTESectorCarrier',
+ 'FK_LTESectorCarrier_REL_FK_used-antennaCapability',
+ 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_used-antennaCapability" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'LTESectorCarrier',
+ 'UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88',
+ 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88" UNIQUE ("REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY");'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'ManagedElement',
  'FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF',
  'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF" FOREIGN KEY ("REL_FK_deployed-as-cloudifiedNF") REFERENCES ties_data."CloudifiedNF" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ManagedElement',
+	'ManagedElement',
  'UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C',
  'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C" UNIQUE ("REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+	'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
  'FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+	'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
  'FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace',
  'ALTER TABLE ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace" FOREIGN KEY ("bSide_CloudNamespace") REFERENCES ties_data."CloudNamespace" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction" FOREIGN KEY ("bSide_GNBCUCPFunction") REFERENCES ties_data."GNBCUCPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction" FOREIGN KEY ("bSide_GNBCUUPFunction") REFERENCES ties_data."GNBCUUPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction" FOREIGN KEY ("bSide_GNBDUFunction") REFERENCES ties_data."GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'FK_NFDeployment_REL_FK_serviced-managedElement',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "FK_NFDeployment_REL_FK_serviced-managedElement" FOREIGN KEY ("REL_FK_serviced-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'UNIQUE_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "UNIQUE_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" UNIQUE ("REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'FK_NFDeployment_REL_FK_comprised-by-cloudifiedNF',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "FK_NFDeployment_REL_FK_comprised-by-cloudifiedNF" FOREIGN KEY ("REL_FK_comprised-by-cloudifiedNF") REFERENCES ties_data."CloudifiedNF" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'UNIQUE_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "UNIQUE_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" UNIQUE ("REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NODECLUSTER_LOCATED_AT_CLOUDSITE',
+	'NODECLUSTER_LOCATED_AT_CLOUDSITE',
  'FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster',
  'ALTER TABLE ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster" FOREIGN KEY ("aSide_NodeCluster") REFERENCES ties_data."NodeCluster" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NODECLUSTER_LOCATED_AT_CLOUDSITE',
+	'NODECLUSTER_LOCATED_AT_CLOUDSITE',
  'FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite',
  'ALTER TABLE ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite" FOREIGN KEY ("bSide_CloudSite") REFERENCES ties_data."CloudSite" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellCU',
+	'NRCellCU',
  'FK_NRCellCU_REL_FK_provided-by-gnbcucpFunction',
  'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "FK_NRCellCU_REL_FK_provided-by-gnbcucpFunction" FOREIGN KEY ("REL_FK_provided-by-gnbcucpFunction") REFERENCES ties_data."GNBCUCPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellCU',
+	'NRCellCU',
  'UNIQUE_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU',
  'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "UNIQUE_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" UNIQUE ("REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
- 'FK_NRCellDU_REL_FK_grouped-by-sector',
- 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "FK_NRCellDU_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
- 'UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU',
- 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU" UNIQUE ("REL_ID_SECTOR_GROUPS_NRCELLDU");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
+	'NRCellDU',
  'FK_NRCellDU_REL_FK_provided-by-gnbduFunction',
  'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "FK_NRCellDU_REL_FK_provided-by-gnbduFunction" FOREIGN KEY ("REL_FK_provided-by-gnbduFunction") REFERENCES ties_data."GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
+	'NRCellDU',
  'UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU',
  'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
- 'FK_NRSectorCarrier_REL_FK_used-by-nrCellDu',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_used-by-nrCellDu" FOREIGN KEY ("REL_FK_used-by-nrCellDu") REFERENCES ties_data."NRCellDU" (id) ON DELETE CASCADE;'
+	'NRCellDU',
+ 'FK_NRCellDU_REL_FK_grouped-by-sector',
+ 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "FK_NRCellDU_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
- 'UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER" UNIQUE ("REL_ID_NRCELLDU_USES_NRSECTORCARRIER");'
+	'NRCellDU',
+ 'UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU',
+ 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU" UNIQUE ("REL_ID_SECTOR_GROUPS_NRCELLDU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction" FOREIGN KEY ("REL_FK_provided-by-gnbduFunction") REFERENCES ties_data."GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
+ 'FK_NRSectorCarrier_REL_FK_used-by-nrCellDu',
+ 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_used-by-nrCellDu" FOREIGN KEY ("REL_FK_used-by-nrCellDu") REFERENCES ties_data."NRCellDU" (id) ON DELETE CASCADE;'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'NRSectorCarrier',
+ 'UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER',
+ 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER" UNIQUE ("REL_ID_NRCELLDU_USES_NRSECTORCARRIER");'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'NRSectorCarrier',
  'FK_NRSectorCarrier_REL_FK_used-antennaCapability',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_used-antennaCapability" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991" UNIQUE ("REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY");'
 );
 
-SELECT ties_data.create_constraint_if_not_exists(
-    'PhysicalNF',
- 'FK_PhysicalNF_REL_FK_installed-at-site',
- 'ALTER TABLE ties_data."PhysicalNF" ADD CONSTRAINT "FK_PhysicalNF_REL_FK_installed-at-site" FOREIGN KEY ("REL_FK_installed-at-site") REFERENCES ties_data."Site" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'PhysicalNF',
- 'UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE',
- 'ALTER TABLE ties_data."PhysicalNF" ADD CONSTRAINT "UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE" UNIQUE ("REL_ID_PHYSICALNF_INSTALLED_AT_SITE");'
-);
-
-
-
-
-
 
 COMMIT;
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 @@
    ./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 @@
 .. 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 @@
 .. 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 @@
 
 .. 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 @@
 .. 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 @@
 <html>
 <head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-  <title>Topology and Inventory API</title>
+  <title>Topology Exposure and Inventory API</title>
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <meta charset="UTF-8" />
@@ -852,7 +852,7 @@
       "type" : "string",
       "enum" : [ "merge", "delete" ]
     },
-    "classifier" : {
+    "classifiers" : {
       "type" : "array",
       "items" : {
         "type" : "string"
@@ -872,68 +872,6 @@
     }
   }
 };
-    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",
   "type" : "object",
@@ -944,9 +882,8 @@
     },
     "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,6 +1056,68 @@
     }
   }
 };
+    defs["Group"] = {
+  "type" : "object",
+  "properties" : {
+    "groupName" : {
+      "type" : "string"
+    },
+    "criteria" : {
+      "$ref" : "#/components/schemas/TopologySelection"
+    }
+  }
+};
+    defs["GroupResponse"] = {
+  "type" : "object",
+  "properties" : {
+    "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",
@@ -1129,15 +1128,6 @@
     }
   }
 };
-    defs["QueryMessage"] = {
-  "title" : "Query",
-  "type" : "object",
-  "properties" : {
-    "query" : {
-      "type" : "string"
-    }
-  }
-};
     defs["RelationshipTypes"] = {
   "title" : "RelationshipTypes",
   "type" : "object",
@@ -1218,10 +1208,7 @@
       "type" : "string"
     },
     "domain" : {
-      "type" : "array",
-      "items" : {
-        "type" : "string"
-      }
+      "type" : "string"
     },
     "revision" : {
       "type" : "string"
@@ -1303,22 +1290,6 @@
                     <li data-group="Classifiers" data-name="updateClassifier" class="">
                       <a href="#api-Classifiers-updateClassifier">updateClassifier</a>
                     </li>
-                  <li class="nav-header" data-group="Collections"><a href="#api-Collections">API Methods - Collections</a></li>
-                    <li data-group="Collections" data-name="createCollection" class="">
-                      <a href="#api-Collections-createCollection">createCollection</a>
-                    </li>
-                    <li data-group="Collections" data-name="deleteCollection" class="">
-                      <a href="#api-Collections-deleteCollection">deleteCollection</a>
-                    </li>
-                    <li data-group="Collections" data-name="getAllCollections" class="">
-                      <a href="#api-Collections-getAllCollections">getAllCollections</a>
-                    </li>
-                    <li data-group="Collections" data-name="getCollection" class="">
-                      <a href="#api-Collections-getCollection">getCollection</a>
-                    </li>
-                    <li data-group="Collections" data-name="updateCollection" class="">
-                      <a href="#api-Collections-updateCollection">updateCollection</a>
-                    </li>
                   <li class="nav-header" data-group="Decorators"><a href="#api-Decorators">API Methods - Decorators</a></li>
                     <li data-group="Decorators" data-name="updateDecorator" class="">
                       <a href="#api-Decorators-updateDecorator">updateDecorator</a>
@@ -1351,10 +1322,6 @@
                     <li data-group="EntitiesAndRelationships" data-name="getTopologyRelationshipTypes" class="">
                       <a href="#api-EntitiesAndRelationships-getTopologyRelationshipTypes">getTopologyRelationshipTypes</a>
                     </li>
-                  <li class="nav-header" data-group="GeoQuery"><a href="#api-GeoQuery">API Methods - GeoQuery</a></li>
-                    <li data-group="GeoQuery" data-name="geoQueryTopologyAcrossDomains" class="">
-                      <a href="#api-GeoQuery-geoQueryTopologyAcrossDomains">geoQueryTopologyAcrossDomains</a>
-                    </li>
                   <li class="nav-header" data-group="Schemas"><a href="#api-Schemas">API Methods - Schemas</a></li>
                     <li data-group="Schemas" data-name="createSchema" class="">
                       <a href="#api-Schemas-createSchema">createSchema</a>
@@ -1368,13 +1335,29 @@
                     <li data-group="Schemas" data-name="getSchemas" class="">
                       <a href="#api-Schemas-getSchemas">getSchemas</a>
                     </li>
+                  <li class="nav-header" data-group="TopologyGroups"><a href="#api-TopologyGroups">API Methods - TopologyGroups</a></li>
+                    <li data-group="TopologyGroups" data-name="createGroup" class="">
+                      <a href="#api-TopologyGroups-createGroup">createGroup</a>
+                    </li>
+                    <li data-group="TopologyGroups" data-name="deleteGroup" class="">
+                      <a href="#api-TopologyGroups-deleteGroup">deleteGroup</a>
+                    </li>
+                    <li data-group="TopologyGroups" data-name="getAllGroups" class="">
+                      <a href="#api-TopologyGroups-getAllGroups">getAllGroups</a>
+                    </li>
+                    <li data-group="TopologyGroups" data-name="getGroup" class="">
+                      <a href="#api-TopologyGroups-getGroup">getGroup</a>
+                    </li>
+                    <li data-group="TopologyGroups" data-name="updateGroup" class="">
+                      <a href="#api-TopologyGroups-updateGroup">updateGroup</a>
+                    </li>
           </ul>
         </nav>
       </div>
       <div id="content">
         <div id="project">
           <div class="pull-left">
-            <h1>Topology and Inventory API</h1>
+            <h1>Topology Exposure and Inventory API</h1>
           </div>
           <div class="clearfix"></div>
         </div>
@@ -1384,30 +1367,90 @@
               <div class="app-desc">Version: 0.11.0</div>
             <hr>
             <div id="app-description" class="app-desc">
-                <p>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.</p>
-<p>Topology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data.</p>
-<p>Entities are enabling the modelling and storage of complex network infrastructure and relationships.</p>
-<p>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</p>
-<p>Topology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests.</p>
+                <p>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.</p>
+<p>Topology Exposure and Inventory supports several topology domains. A domain is a
+grouping of topology and inventory entities that handles topology and
+inventory data.</p>
+<p>Entities are enabling the modelling and storage of complex network
+infrastructure and relationships.</p>
+<p>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.</p>
+<p>Classifier (also known as tag or label) permits the association of a
+well defined user specified string with an entity or relationship.</p>
+<p>Decorators are user-defined attributes (key-value pairs) which can
+be applied to topology entities and relationships.</p>
+<p>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.</p>
 <h2>Querying simple entities</h2>
-<p>EntityType is used as the root of the queries (from here referred as RootObject).  Every other object, either <em>targetFilter</em> or <em>scopeFilter</em>, 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 <em>/attributes</em>.</p>
-<p>| 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 <em>targetFilter</em> parameter. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                          |   GNBDUFunction  |   /attributes(gNBId) <br/>    <strong>OR</strong> <br/> /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 <em>targetFilter</em> parameter. <br/> Case 1: The attributes must be separated by a comma &quot;,&quot; in case of using parenthesis &quot;()&quot;. <br/> Case 2: The attributes must be separated by a semicolon &quot;;&quot; in case of using slash &quot;/&quot;. <br/> Note: The attributes must be valid <em>targetFilter</em> of the object. |   GNBDUFunction  |   /attributes(gNBId, gNBIdLength)  <br/>    <strong>OR</strong> <br/> /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 <em>scopeFilter</em> parameter. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                       |   GNBDUFunction  |                                                                                       | /attributes[contains (@fdn, &quot;/SubNetwork=Ireland/&quot;)]                                                             | Unique set of ids of GNBDUFunctions, where fdn contains &quot;SubNetwork=Ireland&quot;                                      |
-| To return the ids for all instances of the entityType used in the query, that matches the given attributes in the <em>scopeFilter</em> parameter. <br/> Note: the entityType and the object in the <em>scopeFilter</em> parameter must match, and the attributes must be valid field or fields of the object.  The attributes must be separated by a comma &quot;,&quot;.                                                              |   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 <em>scopeFilter</em> parameter. A tag is a complete unit of <em>scopeFilter</em> parameter surrounded by square brackets. <br/> Note: The attributes must be valid field or fields of the object.                                                                                          |   GNBDUFunction  |                                                                                       | /attributes[@gNBIdLength=3 and @gNBId=111]  <br/>    <strong>OR</strong> <br/> /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      |</p>
+<p>The <em>entityTypeName</em> is used as the root of the queries (from here
+referred to as RootObject). Every other object, either in <em>targetFilter</em> or
+<em>scopeFilter</em>, 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 <em>/attributes</em>.</p>
+<p>| 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 <em>targetFilter</em> parameter. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                            | RAN        | GNBDUFunction  | /attributes(gNBId)              |                                                                                         | All gNBIds of every GNBDUFunction                                                                                                    |
+| To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the <em>targetFilter</em> parameter. <br/> Note: The attributes must be separated by a comma &quot;,&quot; when using parenthesis &quot;()&quot;.                                                                                                                                                                | 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 <em>scopeFilter</em> parameter.                                                                                                                                                                                                                                                         | RAN        | GNBDUFunction  |                                 | /sourceIds[contains (@item, 'SubNetwork=Ireland')]                                      | Unique set of ids of GNBDUFunctions, where sourceIds contains <em>SubNetwork=Ireland</em>                                                   |
+| To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the <em>scopeFilter</em> parameter. <br/> Note: The attributes must be separated by a <em>AND</em> or <em>OR</em>&quot;.                                                                                                                                                                                     | 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 <em>scopeFilter</em> parameter. A condition is a complete unit of <em>scopeFilter</em> parameter surrounded by square brackets. <br/> Note: Multiple conditions can be given in the scopeFilter separated by a semicolon &quot;;&quot; to represent AND, or a pipe symbol &quot;|&quot; 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 &quot;SubNetwork=Ireland&quot;      |</p>
 <h2>Querying connected entities</h2>
-<p>It is possible to get information about directly connected objects as well. If entityType is present in the <em>targetFilter</em> parameter, the query provides information about that entityType itself.</p>
-<p>| USE CASE                                                                                                                                                                                                                                                                                                                                                          | ENTITY TYPE   | TARGET FILTER                       | SCOPE FILTER                                              | QUERY RESULT                                                                                                                                      |
-|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
-| To return the ids for all instances of the entityType in the <em>targetFilter</em> 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 <em>targetFilter</em> 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 <em>scopeFilter</em> 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 <em>scopeFilter</em> parameter.                                                                                                                                                                            |  GNBDUFunction |                                     | /AntennaCapability <br/>    <strong>OR</strong> <br/> /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type                |</p>
+<p>The <em>entityTypeName</em> is used as the root of the queries.</p>
+<p>| 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 <em>id</em>.                    | REL_OAM_RAN | ENodeBFunction |              | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1']                                                                                                                                                                            | All ENodeBFunction entities that are managed by by the Managed Element <em>urn:3gpp:dn: ManagedElement=1</em>.                                                                                                                  |
+| To return the attributes for all instances of an entityTypeName related by one or more associations to other entities specified by their <em>id</em>. | 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 <em>1</em>, managed by the Managed Element <em>urn:3gpp:dn: ManagedElement=1</em> or <em>urn:3gpp:dn: ManagedElement=2</em>, and provides EuTranCell <em>urn:3gpp:dn: ManagedElement=1, EUtranCell=2</em>. |</p>
+<h2>Querying entities for relationships</h2>
+<p>The <em>entityTypeName</em> is used as the root of the queries.</p>
+<p>| 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 <em>urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1</em>.                                                                                                       |
+| 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 <em>MANAGEDELEMENT _MANAGES _GNBDUFUNCTION</em> relations for the GNBDUFunction with id <em>urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1</em>.                                                              |
+| 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 <em>MANAGEDELEMENT _MANAGES _GNBDUFUNCTION</em> relations for the GNBDUFunction with id <em>urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1</em> where the managed element is <em>urn:3gpp:dn: ManagedElement=1</em>. |</p>
+<h2>Querying on relationships</h2>
+<p>Here, the <em>relationshipTypeName</em> is used as the root of the queries.</p>
+<p>| 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 <em>managed-by-managedElement</em> to ManagedElement <em>urn:3gpp:dn: ManagedElement=1</em>. |</p>
+<h2>Querying on classifiers and decorators</h2>
+<p>The <em>domainName</em> is used as the root of the queries.</p>
+<p>| 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 &quot;gnbdu-function-model:Indoor&quot; 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 &quot;Ind&quot; 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 &quot;gnbdu-function-model:textdata = 'Stockholm'&quot; 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, &quot;&quot;)] | All the entity IDs that are exactly matched with &quot;gnbdu-function-model:textdata as key of the decorator in RAN domain. |</p>
+<p>The <em>entityName</em> is used as the root of the queries.</p>
+<p>| 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator is 'Stockholm'&quot; and where classifier exactly contains &quot;gnbdu-function-model:Indoor&quot;.         |
+| 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 &quot;Ind&quot;.                                                                                                                                        |
+| 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 &quot;gnbdu-function-model:textdata&quot; 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text &quot;Ind&quot;.  |</p>
+<p>The <em>relationshipTypeName</em> is used as the root of the queries.</p>
+<p>| 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator is 'Stockholm'&quot; and classifiers exactly contains &quot;gnbdu-function-model:Indoor&quot;. |
+| 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 &quot;Ind&quot;.                                                                                                                                              |
+| 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 &quot;gnbdu-function-model:textdata&quot; 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator partially contains 'Stock' and classifiers partially contains the text &quot;Ind&quot;.   |</p>
 
             </div>
           </div>
@@ -1424,10 +1467,10 @@
                         <div class="pull-right"></div>
                         <div class="clearfix"></div>
                         <p></p>
-                        <p class="marked">Update entities and/or relationships with classifier(s).</p>
+                        <p class="marked">Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.</p>
                         <p></p>
                         <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/classifiers</span></code></pre>
+                        <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/classifiers</span></code></pre>
                         <p>
                           <h3>Usage and SDK Samples</h3>
                         </p>
@@ -1449,12 +1492,12 @@
 
                         <div class="tab-content">
                           <div class="tab-pane active" id="examples-Classifiers-updateClassifier-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X PUT \
+                            <pre class="prettyprint"><code class="language-bsh">curl -X POST \
  -H "Accept: application/problem+json" \
  -H "Content-Type: application/json" \
  "https://localhost/topology-inventory/v1alpha11/classifiers" \
  -d '{
-  &quot;classifier&quot; : [ &quot;classifier&quot;, &quot;classifier&quot; ],
+  &quot;classifiers&quot; : [ &quot;classifiers&quot;, &quot;classifiers&quot; ],
   &quot;relationshipIds&quot; : [ &quot;relationshipIds&quot;, &quot;relationshipIds&quot; ],
   &quot;operation&quot; : &quot;merge&quot;,
   &quot;entityIds&quot; : [ &quot;entityIds&quot;, &quot;entityIds&quot; ]
@@ -1554,10 +1597,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-Classifiers-updateClassifier-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 @@
         "$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,4218 +2312,6 @@
                       </div>
                       <hr>
                   </section>
-                <section id="api-Collections">
-                  <h1>Collections</h1>
-                    <div id="api-Collections-createCollection">
-                      <article id="api-Collections-createCollection-0" data-group="User" data-name="createCollection" data-version="0">
-                        <div class="pull-left">
-                          <h1>createCollection</h1>
-                          <p>Create a collection.</p>
-                        </div>
-                        <div class="pull-right"></div>
-                        <div class="clearfix"></div>
-                        <p></p>
-                        <p class="marked">Create a collection.</p>
-                        <p></p>
-                        <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/collections</span></code></pre>
-                        <p>
-                          <h3>Usage and SDK Samples</h3>
-                        </p>
-                        <ul class="nav nav-tabs nav-tabs-examples">
-                          <li class="active"><a href="#examples-Collections-createCollection-0-curl">Curl</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-java">Java</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-dart">Dart</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-android">Android</a></li>
-                          <!--<li class=""><a href="#examples-Collections-createCollection-0-groovy">Groovy</a></li>-->
-                          <li class=""><a href="#examples-Collections-createCollection-0-objc">Obj-C</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-javascript">JavaScript</a></li>
-                          <!--<li class=""><a href="#examples-Collections-createCollection-0-angular">Angular</a></li>-->
-                          <li class=""><a href="#examples-Collections-createCollection-0-csharp">C#</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-php">PHP</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-perl">Perl</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-python">Python</a></li>
-                          <li class=""><a href="#examples-Collections-createCollection-0-rust">Rust</a></li>
-                        </ul>
-
-                        <div class="tab-content">
-                          <div class="tab-pane active" id="examples-Collections-createCollection-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X POST \
- -H "Accept: application/json,application/problem+json" \
- -H "Content-Type: application/json" \
- "https://localhost/topology-inventory/v1alpha11/collections" \
- -d '{
-  &quot;criteria&quot; : {
-    &quot;resourceInstances&quot; : [ &quot;resourceInstances&quot;, &quot;resourceInstances&quot; ]
-  },
-  &quot;collectionName&quot; : &quot;collectionName&quot;
-}'
-</code></pre>
-                          </div>
-                          <div class="tab-pane" id="examples-Collections-createCollection-0-java">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
-import org.openapitools.client.auth.*;
-import org.openapitools.client.model.*;
-import org.openapitools.client.api.CollectionsApi;
-
-import java.io.File;
-import java.util.*;
-
-public class CollectionsApiExample {
-    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 | 
-        Collection collection = ; // Collection | 
-
-        try {
-            CollectionResponse result = apiInstance.createCollection(accept, contentType, collection);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#createCollection");
-            e.printStackTrace();
-        }
-    }
-}
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-createCollection-0-dart">
-                            <pre class="prettyprint"><code class="language-dart">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 | 
-
-try {
-    final result = await api_instance.createCollection(accept, contentType, collection);
-    print(result);
-} catch (e) {
-    print('Exception when calling DefaultApi->createCollection: $e\n');
-}
-
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-createCollection-0-android">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.CollectionsApi;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        String contentType = application/json; // String | 
-        Collection collection = ; // Collection | 
-
-        try {
-            CollectionResponse result = apiInstance.createCollection(accept, contentType, collection);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#createCollection");
-            e.printStackTrace();
-        }
-    }
-}</code></pre>
-                          </div>
-  <!--
-  <div class="tab-pane" id="examples-Collections-createCollection-0-groovy">
-  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-  </div> -->
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">
-
-// 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)
-Collection *collection = ; // 
-
-// Create a collection.
-[apiInstance createCollectionWith:accept
-    contentType:contentType
-    collection:collection
-              completionHandler: ^(CollectionResponse output, NSError* error) {
-    if (output) {
-        NSLog(@"%@", output);
-    }
-    if (error) {
-        NSLog(@"Error: %@", error);
-    }
-}];
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_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 collection = ; // {Collection} 
-
-var callback = function(error, data, response) {
-  if (error) {
-    console.error(error);
-  } else {
-    console.log('API called successfully. Returned data: ' + data);
-  }
-};
-api.createCollection(accept, contentType, collection, callback);
-</code></pre>
-                            </div>
-
-                            <!--<div class="tab-pane" id="examples-Collections-createCollection-0-angular">
-              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-            </div>-->
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-csharp">
-                              <pre class="prettyprint"><code class="language-cs">using System;
-using System.Diagnostics;
-using Org.OpenAPITools.Api;
-using Org.OpenAPITools.Client;
-using Org.OpenAPITools.Model;
-
-namespace Example
-{
-    public class createCollectionExample
-    {
-        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 collection = new Collection(); // Collection | 
-
-            try {
-                // Create a collection.
-                CollectionResponse result = apiInstance.createCollection(accept, contentType, collection);
-                Debug.WriteLine(result);
-            } catch (Exception e) {
-                Debug.Print("Exception when calling CollectionsApi.createCollection: " + e.Message );
-            }
-        }
-    }
-}
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-php">
-                              <pre class="prettyprint"><code class="language-php"><&#63;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 | 
-$collection = ; // Collection | 
-
-try {
-    $result = $api_instance->createCollection($accept, $contentType, $collection);
-    print_r($result);
-} catch (Exception $e) {
-    echo 'Exception when calling CollectionsApi->createCollection: ', $e->getMessage(), PHP_EOL;
-}
-?></code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-perl">
-                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
-use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::CollectionsApi;
-
-# 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 $collection = WWW::OPenAPIClient::Object::Collection->new(); # Collection | 
-
-eval {
-    my $result = $api_instance->createCollection(accept => $accept, contentType => $contentType, collection => $collection);
-    print Dumper($result);
-};
-if ($@) {
-    warn "Exception when calling CollectionsApi->createCollection: $@\n";
-}</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-python">
-                              <pre class="prettyprint"><code class="language-python">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.CollectionsApi()
-accept = application/json # String |  (default to application/json)
-contentType = application/json # String |  (default to application/json)
-collection =  # Collection | 
-
-try:
-    # Create a collection.
-    api_response = api_instance.create_collection(accept, contentType, collection)
-    pprint(api_response)
-except ApiException as e:
-    print("Exception when calling CollectionsApi->createCollection: %s\n" % e)</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-createCollection-0-rust">
-                              <pre class="prettyprint"><code class="language-rust">extern crate CollectionsApi;
-
-pub fn main() {
-    let accept = application/json; // String
-    let contentType = application/json; // String
-    let collection = ; // Collection
-
-    let mut context = CollectionsApi::Context::default();
-    let result = client.createCollection(accept, contentType, collection, &context).wait();
-
-    println!("{:?}", result);
-}
-</code></pre>
-                            </div>
-                          </div>
-
-                          <h2>Scopes</h2>
-                          <table>
-                            
-                          </table>
-
-                          <h2>Parameters</h2>
-
-
-                            <div class="methodsubtabletitle">Header parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                  <tr><td style="width:150px;">Accept*</td>
-<td>
-
-
-    <div id="d2e199_createCollection_accept">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                                  <tr><td style="width:150px;">Content-Type*</td>
-<td>
-
-
-    <div id="d2e199_createCollection_contentType">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                            <div class="methodsubtabletitle">Body parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                <tr><td style="width:150px;">collection <span style="color:red;">*</span></td>
-<td>
-<p class="marked"></p>
-<script>
-$(document).ready(function() {
-  var schemaWrapper = {
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/Collection"
-      },
-      "examples" : {
-        "dynamicCollection" : {
-          "$ref" : "#/components/examples/DynamicCollectionExample"
-        },
-        "staticCollection" : {
-          "$ref" : "#/components/examples/StaticCollectionExample"
-        }
-      }
-    }
-  },
-  "required" : true
-};
-
-  var schema = findNode('schema',schemaWrapper).schema;
-  if (!schema) {
-    schema = schemaWrapper.schema;
-  }
-  if (schema.$ref != null) {
-    schema = defsParser.$refs.get(schema.$ref);
-  } else if (schema.items != null && schema.items.$ref != null) {
-    schema.items = defsParser.$refs.get(schema.items.$ref);
-  } else {
-    schemaWrapper.definitions = Object.assign({}, defs);
-    $RefParser.dereference(schemaWrapper).catch(function(err) {
-      console.log(err);
-    });
-  }
-
-  var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_createCollection_collection');
-  result.empty();
-  result.append(view.render());
-});
-</script>
-<div id="d2e199_createCollection_collection"></div>
-</td>
-</tr>
-
-                            </table>
-
-
-
-                          <h2>Responses</h2>
-                            <h3 id="examples-Collections-createCollection-title-201"></h3>
-                            <p id="examples-Collections-createCollection-description-201" class="marked"></p>
-                            <script>
-                              var responseCollections201_description = `Created`;
-                              var responseCollections201_description_break = responseCollections201_description.indexOf('\n');
-                              if (responseCollections201_description_break == -1) {
-                                $("#examples-Collections-createCollection-title-201").text("Status: 201 - " + responseCollections201_description);
-                              } else {
-                                $("#examples-Collections-createCollection-title-201").text("Status: 201 - " + responseCollections201_description.substring(0, responseCollections201_description_break));
-                                $("#examples-Collections-createCollection-description-201").html(responseCollections201_description.substring(responseCollections201_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-createCollection-201" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-createCollection-201-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-createCollection-201-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-createCollection-201-schema">
-                                <div id="responses-Collections-createCollection-schema-201" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Created",
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/CollectionResponse"
-      },
-      "examples" : {
-        "collection" : {
-          "$ref" : "#/components/examples/CollectionResponseExample"
-        }
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-createCollection-201-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-createCollection-schema-201');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-createCollection-201-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-createCollection-title-400"></h3>
-                            <p id="examples-Collections-createCollection-description-400" class="marked"></p>
-                            <script>
-                              var responseCollections400_description = `Bad Request`;
-                              var responseCollections400_description_break = responseCollections400_description.indexOf('\n');
-                              if (responseCollections400_description_break == -1) {
-                                $("#examples-Collections-createCollection-title-400").text("Status: 400 - " + responseCollections400_description);
-                              } else {
-                                $("#examples-Collections-createCollection-title-400").text("Status: 400 - " + responseCollections400_description.substring(0, responseCollections400_description_break));
-                                $("#examples-Collections-createCollection-description-400").html(responseCollections400_description.substring(responseCollections400_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-createCollection-400" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-createCollection-400-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-createCollection-400-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-createCollection-400-schema">
-                                <div id="responses-Collections-createCollection-schema-400" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Bad Request",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "400",
-        "title" : "Bad Request",
-        "details" : "The provided request is not valid"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-createCollection-400-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-createCollection-schema-400');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-createCollection-400-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-createCollection-title-401"></h3>
-                            <p id="examples-Collections-createCollection-description-401" class="marked"></p>
-                            <script>
-                              var responseCollections401_description = `Unauthorized`;
-                              var responseCollections401_description_break = responseCollections401_description.indexOf('\n');
-                              if (responseCollections401_description_break == -1) {
-                                $("#examples-Collections-createCollection-title-401").text("Status: 401 - " + responseCollections401_description);
-                              } else {
-                                $("#examples-Collections-createCollection-title-401").text("Status: 401 - " + responseCollections401_description.substring(0, responseCollections401_description_break));
-                                $("#examples-Collections-createCollection-description-401").html(responseCollections401_description.substring(responseCollections401_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-createCollection-401" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-createCollection-401-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-createCollection-401-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-createCollection-401-schema">
-                                <div id="responses-Collections-createCollection-schema-401" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Unauthorized",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "401",
-        "title" : "Unauthorized request",
-        "details" : "This request is unauthorized"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-createCollection-401-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-createCollection-schema-401');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-createCollection-401-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-createCollection-title-403"></h3>
-                            <p id="examples-Collections-createCollection-description-403" class="marked"></p>
-                            <script>
-                              var responseCollections403_description = `Forbidden`;
-                              var responseCollections403_description_break = responseCollections403_description.indexOf('\n');
-                              if (responseCollections403_description_break == -1) {
-                                $("#examples-Collections-createCollection-title-403").text("Status: 403 - " + responseCollections403_description);
-                              } else {
-                                $("#examples-Collections-createCollection-title-403").text("Status: 403 - " + responseCollections403_description.substring(0, responseCollections403_description_break));
-                                $("#examples-Collections-createCollection-description-403").html(responseCollections403_description.substring(responseCollections403_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-createCollection-403" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-createCollection-403-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-createCollection-403-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-createCollection-403-schema">
-                                <div id="responses-Collections-createCollection-schema-403" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Forbidden",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "403",
-        "title" : "Request Forbidden",
-        "details" : "This request is forbidden"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-createCollection-403-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-createCollection-schema-403');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-createCollection-403-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-createCollection-title-409"></h3>
-                            <p id="examples-Collections-createCollection-description-409" class="marked"></p>
-                            <script>
-                              var responseCollections409_description = `Conflict`;
-                              var responseCollections409_description_break = responseCollections409_description.indexOf('\n');
-                              if (responseCollections409_description_break == -1) {
-                                $("#examples-Collections-createCollection-title-409").text("Status: 409 - " + responseCollections409_description);
-                              } else {
-                                $("#examples-Collections-createCollection-title-409").text("Status: 409 - " + responseCollections409_description.substring(0, responseCollections409_description_break));
-                                $("#examples-Collections-createCollection-description-409").html(responseCollections409_description.substring(responseCollections409_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-createCollection-409" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-createCollection-409-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-createCollection-409-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-createCollection-409-schema">
-                                <div id="responses-Collections-createCollection-schema-409" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Conflict",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "409'",
-        "title" : "Conflicting request",
-        "details" : "The request cannot be processed as the resource is in use."
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-createCollection-409-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-createCollection-schema-409');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-createCollection-409-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-createCollection-title-500"></h3>
-                            <p id="examples-Collections-createCollection-description-500" class="marked"></p>
-                            <script>
-                              var responseCollections500_description = `Internal Server Error`;
-                              var responseCollections500_description_break = responseCollections500_description.indexOf('\n');
-                              if (responseCollections500_description_break == -1) {
-                                $("#examples-Collections-createCollection-title-500").text("Status: 500 - " + responseCollections500_description);
-                              } else {
-                                $("#examples-Collections-createCollection-title-500").text("Status: 500 - " + responseCollections500_description.substring(0, responseCollections500_description_break));
-                                $("#examples-Collections-createCollection-description-500").html(responseCollections500_description.substring(responseCollections500_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-createCollection-500" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-createCollection-500-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-createCollection-500-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-createCollection-500-schema">
-                                <div id="responses-Collections-createCollection-schema-500" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Internal Server Error",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "500",
-        "title" : "Internal Server Error",
-        "details" : "Internal Server Error occurred"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-createCollection-500-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-createCollection-schema-500');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-createCollection-500-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                        </article>
-                      </div>
-                      <hr>
-                    <div id="api-Collections-deleteCollection">
-                      <article id="api-Collections-deleteCollection-0" data-group="User" data-name="deleteCollection" data-version="0">
-                        <div class="pull-left">
-                          <h1>deleteCollection</h1>
-                          <p>Delete a collection with specified id.</p>
-                        </div>
-                        <div class="pull-right"></div>
-                        <div class="clearfix"></div>
-                        <p></p>
-                        <p class="marked">Delete a collection with specified id.</p>
-                        <p></p>
-                        <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/collections/{collectionId}</span></code></pre>
-                        <p>
-                          <h3>Usage and SDK Samples</h3>
-                        </p>
-                        <ul class="nav nav-tabs nav-tabs-examples">
-                          <li class="active"><a href="#examples-Collections-deleteCollection-0-curl">Curl</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-java">Java</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-dart">Dart</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-android">Android</a></li>
-                          <!--<li class=""><a href="#examples-Collections-deleteCollection-0-groovy">Groovy</a></li>-->
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-objc">Obj-C</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-javascript">JavaScript</a></li>
-                          <!--<li class=""><a href="#examples-Collections-deleteCollection-0-angular">Angular</a></li>-->
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-csharp">C#</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-php">PHP</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-perl">Perl</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-python">Python</a></li>
-                          <li class=""><a href="#examples-Collections-deleteCollection-0-rust">Rust</a></li>
-                        </ul>
-
-                        <div class="tab-content">
-                          <div class="tab-pane active" id="examples-Collections-deleteCollection-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X DELETE \
- -H "Accept: application/problem+json" \
- "https://localhost/topology-inventory/v1alpha11/collections/{collectionId}"
-</code></pre>
-                          </div>
-                          <div class="tab-pane" id="examples-Collections-deleteCollection-0-java">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
-import org.openapitools.client.auth.*;
-import org.openapitools.client.model.*;
-import org.openapitools.client.api.CollectionsApi;
-
-import java.io.File;
-import java.util.*;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-
-        // Create an instance of the API class
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        String collectionId = collectionId_example; // String | 
-
-        try {
-            apiInstance.deleteCollection(accept, collectionId);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#deleteCollection");
-            e.printStackTrace();
-        }
-    }
-}
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-deleteCollection-0-dart">
-                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
-
-final api_instance = DefaultApi();
-
-final String accept = new String(); // String | 
-final String collectionId = new String(); // String | 
-
-try {
-    final result = await api_instance.deleteCollection(accept, collectionId);
-    print(result);
-} catch (e) {
-    print('Exception when calling DefaultApi->deleteCollection: $e\n');
-}
-
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-deleteCollection-0-android">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.CollectionsApi;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        String collectionId = collectionId_example; // String | 
-
-        try {
-            apiInstance.deleteCollection(accept, collectionId);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#deleteCollection");
-            e.printStackTrace();
-        }
-    }
-}</code></pre>
-                          </div>
-  <!--
-  <div class="tab-pane" id="examples-Collections-deleteCollection-0-groovy">
-  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-  </div> -->
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">
-
-// Create an instance of the API class
-CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
-String *accept = application/json; //  (default to application/json)
-String *collectionId = collectionId_example; //  (default to null)
-
-// Delete a collection with specified id.
-[apiInstance deleteCollectionWith:accept
-    collectionId:collectionId
-              completionHandler: ^(NSError* error) {
-    if (error) {
-        NSLog(@"Error: %@", error);
-    }
-}];
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
-
-// Create an instance of the API class
-var api = new TopologyAndInventoryApi.CollectionsApi()
-var accept = application/json; // {String} 
-var collectionId = collectionId_example; // {String} 
-
-var callback = function(error, data, response) {
-  if (error) {
-    console.error(error);
-  } else {
-    console.log('API called successfully.');
-  }
-};
-api.deleteCollection(accept, collectionId, callback);
-</code></pre>
-                            </div>
-
-                            <!--<div class="tab-pane" id="examples-Collections-deleteCollection-0-angular">
-              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-            </div>-->
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-csharp">
-                              <pre class="prettyprint"><code class="language-cs">using System;
-using System.Diagnostics;
-using Org.OpenAPITools.Api;
-using Org.OpenAPITools.Client;
-using Org.OpenAPITools.Model;
-
-namespace Example
-{
-    public class deleteCollectionExample
-    {
-        public void main()
-        {
-
-            // Create an instance of the API class
-            var apiInstance = new CollectionsApi();
-            var accept = application/json;  // String |  (default to application/json)
-            var collectionId = collectionId_example;  // String |  (default to null)
-
-            try {
-                // Delete a collection with specified id.
-                apiInstance.deleteCollection(accept, collectionId);
-            } catch (Exception e) {
-                Debug.Print("Exception when calling CollectionsApi.deleteCollection: " + e.Message );
-            }
-        }
-    }
-}
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-php">
-                              <pre class="prettyprint"><code class="language-php"><&#63;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 | 
-$collectionId = collectionId_example; // String | 
-
-try {
-    $api_instance->deleteCollection($accept, $collectionId);
-} catch (Exception $e) {
-    echo 'Exception when calling CollectionsApi->deleteCollection: ', $e->getMessage(), PHP_EOL;
-}
-?></code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-perl">
-                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
-use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::CollectionsApi;
-
-# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
-my $accept = application/json; # String | 
-my $collectionId = collectionId_example; # String | 
-
-eval {
-    $api_instance->deleteCollection(accept => $accept, collectionId => $collectionId);
-};
-if ($@) {
-    warn "Exception when calling CollectionsApi->deleteCollection: $@\n";
-}</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-python">
-                              <pre class="prettyprint"><code class="language-python">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.CollectionsApi()
-accept = application/json # String |  (default to application/json)
-collectionId = collectionId_example # String |  (default to null)
-
-try:
-    # Delete a collection with specified id.
-    api_instance.delete_collection(accept, collectionId)
-except ApiException as e:
-    print("Exception when calling CollectionsApi->deleteCollection: %s\n" % e)</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-deleteCollection-0-rust">
-                              <pre class="prettyprint"><code class="language-rust">extern crate CollectionsApi;
-
-pub fn main() {
-    let accept = application/json; // String
-    let collectionId = collectionId_example; // String
-
-    let mut context = CollectionsApi::Context::default();
-    let result = client.deleteCollection(accept, collectionId, &context).wait();
-
-    println!("{:?}", result);
-}
-</code></pre>
-                            </div>
-                          </div>
-
-                          <h2>Scopes</h2>
-                          <table>
-                            
-                          </table>
-
-                          <h2>Parameters</h2>
-
-                            <div class="methodsubtabletitle">Path parameters</div>
-                            <table id="methodsubtable">
-                                <tr>
-                                  <th width="150px">Name</th>
-                                  <th>Description</th>
-                                </tr>
-                                  <tr><td style="width:150px;">collectionId*</td>
-<td>
-
-
-    <div id="d2e199_deleteCollection_collectionId">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                            <div class="methodsubtabletitle">Header parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                  <tr><td style="width:150px;">Accept*</td>
-<td>
-
-
-    <div id="d2e199_deleteCollection_accept">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-
-
-
-                          <h2>Responses</h2>
-                            <h3 id="examples-Collections-deleteCollection-title-204"></h3>
-                            <p id="examples-Collections-deleteCollection-description-204" class="marked"></p>
-                            <script>
-                              var responseCollections204_description = `No Content`;
-                              var responseCollections204_description_break = responseCollections204_description.indexOf('\n');
-                              if (responseCollections204_description_break == -1) {
-                                $("#examples-Collections-deleteCollection-title-204").text("Status: 204 - " + responseCollections204_description);
-                              } else {
-                                $("#examples-Collections-deleteCollection-title-204").text("Status: 204 - " + responseCollections204_description.substring(0, responseCollections204_description_break));
-                                $("#examples-Collections-deleteCollection-description-204").html(responseCollections204_description.substring(responseCollections204_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-deleteCollection-204" class="nav nav-tabs nav-tabs-examples" >
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-deleteCollection-204-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-deleteCollection-204-schema">
-                                <div id="responses-Collections-deleteCollection-schema-204" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "No Content",
-  "content" : { }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-deleteCollection-204-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-deleteCollection-schema-204');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-deleteCollection-204-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-deleteCollection-title-400"></h3>
-                            <p id="examples-Collections-deleteCollection-description-400" class="marked"></p>
-                            <script>
-                              var responseCollections400_description = `Bad Request`;
-                              var responseCollections400_description_break = responseCollections400_description.indexOf('\n');
-                              if (responseCollections400_description_break == -1) {
-                                $("#examples-Collections-deleteCollection-title-400").text("Status: 400 - " + responseCollections400_description);
-                              } else {
-                                $("#examples-Collections-deleteCollection-title-400").text("Status: 400 - " + responseCollections400_description.substring(0, responseCollections400_description_break));
-                                $("#examples-Collections-deleteCollection-description-400").html(responseCollections400_description.substring(responseCollections400_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-deleteCollection-400" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-deleteCollection-400-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-deleteCollection-400-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-deleteCollection-400-schema">
-                                <div id="responses-Collections-deleteCollection-schema-400" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Bad Request",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "400",
-        "title" : "Bad Request",
-        "details" : "The provided request is not valid"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-deleteCollection-400-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-deleteCollection-schema-400');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-deleteCollection-400-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-deleteCollection-title-401"></h3>
-                            <p id="examples-Collections-deleteCollection-description-401" class="marked"></p>
-                            <script>
-                              var responseCollections401_description = `Unauthorized`;
-                              var responseCollections401_description_break = responseCollections401_description.indexOf('\n');
-                              if (responseCollections401_description_break == -1) {
-                                $("#examples-Collections-deleteCollection-title-401").text("Status: 401 - " + responseCollections401_description);
-                              } else {
-                                $("#examples-Collections-deleteCollection-title-401").text("Status: 401 - " + responseCollections401_description.substring(0, responseCollections401_description_break));
-                                $("#examples-Collections-deleteCollection-description-401").html(responseCollections401_description.substring(responseCollections401_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-deleteCollection-401" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-deleteCollection-401-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-deleteCollection-401-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-deleteCollection-401-schema">
-                                <div id="responses-Collections-deleteCollection-schema-401" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Unauthorized",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "401",
-        "title" : "Unauthorized request",
-        "details" : "This request is unauthorized"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-deleteCollection-401-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-deleteCollection-schema-401');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-deleteCollection-401-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-deleteCollection-title-403"></h3>
-                            <p id="examples-Collections-deleteCollection-description-403" class="marked"></p>
-                            <script>
-                              var responseCollections403_description = `Forbidden`;
-                              var responseCollections403_description_break = responseCollections403_description.indexOf('\n');
-                              if (responseCollections403_description_break == -1) {
-                                $("#examples-Collections-deleteCollection-title-403").text("Status: 403 - " + responseCollections403_description);
-                              } else {
-                                $("#examples-Collections-deleteCollection-title-403").text("Status: 403 - " + responseCollections403_description.substring(0, responseCollections403_description_break));
-                                $("#examples-Collections-deleteCollection-description-403").html(responseCollections403_description.substring(responseCollections403_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-deleteCollection-403" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-deleteCollection-403-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-deleteCollection-403-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-deleteCollection-403-schema">
-                                <div id="responses-Collections-deleteCollection-schema-403" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Forbidden",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "403",
-        "title" : "Request Forbidden",
-        "details" : "This request is forbidden"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-deleteCollection-403-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-deleteCollection-schema-403');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-deleteCollection-403-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-deleteCollection-title-404"></h3>
-                            <p id="examples-Collections-deleteCollection-description-404" class="marked"></p>
-                            <script>
-                              var responseCollections404_description = `Not Found`;
-                              var responseCollections404_description_break = responseCollections404_description.indexOf('\n');
-                              if (responseCollections404_description_break == -1) {
-                                $("#examples-Collections-deleteCollection-title-404").text("Status: 404 - " + responseCollections404_description);
-                              } else {
-                                $("#examples-Collections-deleteCollection-title-404").text("Status: 404 - " + responseCollections404_description.substring(0, responseCollections404_description_break));
-                                $("#examples-Collections-deleteCollection-description-404").html(responseCollections404_description.substring(responseCollections404_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-deleteCollection-404" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-deleteCollection-404-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-deleteCollection-404-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-deleteCollection-404-schema">
-                                <div id="responses-Collections-deleteCollection-schema-404" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Not Found",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "404",
-        "title" : "Resource Not Found",
-        "details" : "The requested resource is not found"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-deleteCollection-404-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-deleteCollection-schema-404');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-deleteCollection-404-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-deleteCollection-title-500"></h3>
-                            <p id="examples-Collections-deleteCollection-description-500" class="marked"></p>
-                            <script>
-                              var responseCollections500_description = `Internal Server Error`;
-                              var responseCollections500_description_break = responseCollections500_description.indexOf('\n');
-                              if (responseCollections500_description_break == -1) {
-                                $("#examples-Collections-deleteCollection-title-500").text("Status: 500 - " + responseCollections500_description);
-                              } else {
-                                $("#examples-Collections-deleteCollection-title-500").text("Status: 500 - " + responseCollections500_description.substring(0, responseCollections500_description_break));
-                                $("#examples-Collections-deleteCollection-description-500").html(responseCollections500_description.substring(responseCollections500_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-deleteCollection-500" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-deleteCollection-500-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-deleteCollection-500-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-deleteCollection-500-schema">
-                                <div id="responses-Collections-deleteCollection-schema-500" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Internal Server Error",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "500",
-        "title" : "Internal Server Error",
-        "details" : "Internal Server Error occurred"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-deleteCollection-500-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-deleteCollection-schema-500');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-deleteCollection-500-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                        </article>
-                      </div>
-                      <hr>
-                    <div id="api-Collections-getAllCollections">
-                      <article id="api-Collections-getAllCollections-0" data-group="User" data-name="getAllCollections" data-version="0">
-                        <div class="pull-left">
-                          <h1>getAllCollections</h1>
-                          <p>Get all collections.</p>
-                        </div>
-                        <div class="pull-right"></div>
-                        <div class="clearfix"></div>
-                        <p></p>
-                        <p class="marked">Get all collections.</p>
-                        <p></p>
-                        <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/collections</span></code></pre>
-                        <p>
-                          <h3>Usage and SDK Samples</h3>
-                        </p>
-                        <ul class="nav nav-tabs nav-tabs-examples">
-                          <li class="active"><a href="#examples-Collections-getAllCollections-0-curl">Curl</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-java">Java</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-dart">Dart</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-android">Android</a></li>
-                          <!--<li class=""><a href="#examples-Collections-getAllCollections-0-groovy">Groovy</a></li>-->
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-objc">Obj-C</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-javascript">JavaScript</a></li>
-                          <!--<li class=""><a href="#examples-Collections-getAllCollections-0-angular">Angular</a></li>-->
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-csharp">C#</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-php">PHP</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-perl">Perl</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-python">Python</a></li>
-                          <li class=""><a href="#examples-Collections-getAllCollections-0-rust">Rust</a></li>
-                        </ul>
-
-                        <div class="tab-content">
-                          <div class="tab-pane active" id="examples-Collections-getAllCollections-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json,application/problem+json" \
- "https://localhost/topology-inventory/v1alpha11/collections?offset=56&limit=56"
-</code></pre>
-                          </div>
-                          <div class="tab-pane" id="examples-Collections-getAllCollections-0-java">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
-import org.openapitools.client.auth.*;
-import org.openapitools.client.model.*;
-import org.openapitools.client.api.CollectionsApi;
-
-import java.io.File;
-import java.util.*;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-
-        // Create an instance of the API class
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        Integer offset = 56; // Integer | Pagination offset.
-        Integer limit = 56; // Integer | Result limiter.
-
-        try {
-            Collections result = apiInstance.getAllCollections(accept, offset, limit);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#getAllCollections");
-            e.printStackTrace();
-        }
-    }
-}
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-getAllCollections-0-dart">
-                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
-
-final api_instance = DefaultApi();
-
-final String accept = 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.getAllCollections(accept, offset, limit);
-    print(result);
-} catch (e) {
-    print('Exception when calling DefaultApi->getAllCollections: $e\n');
-}
-
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-getAllCollections-0-android">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.CollectionsApi;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        Integer offset = 56; // Integer | Pagination offset.
-        Integer limit = 56; // Integer | Result limiter.
-
-        try {
-            Collections result = apiInstance.getAllCollections(accept, offset, limit);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#getAllCollections");
-            e.printStackTrace();
-        }
-    }
-}</code></pre>
-                          </div>
-  <!--
-  <div class="tab-pane" id="examples-Collections-getAllCollections-0-groovy">
-  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-  </div> -->
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">
-
-// Create an instance of the API class
-CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
-String *accept = application/json; //  (default to application/json)
-Integer *offset = 56; // Pagination offset. (optional) (default to 0)
-Integer *limit = 56; // Result limiter. (optional) (default to 500)
-
-// Get all collections.
-[apiInstance getAllCollectionsWith:accept
-    offset:offset
-    limit:limit
-              completionHandler: ^(Collections output, NSError* error) {
-    if (output) {
-        NSLog(@"%@", output);
-    }
-    if (error) {
-        NSLog(@"Error: %@", error);
-    }
-}];
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
-
-// Create an instance of the API class
-var api = new TopologyAndInventoryApi.CollectionsApi()
-var accept = application/json; // {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. Returned data: ' + data);
-  }
-};
-api.getAllCollections(accept, opts, callback);
-</code></pre>
-                            </div>
-
-                            <!--<div class="tab-pane" id="examples-Collections-getAllCollections-0-angular">
-              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-            </div>-->
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-csharp">
-                              <pre class="prettyprint"><code class="language-cs">using System;
-using System.Diagnostics;
-using Org.OpenAPITools.Api;
-using Org.OpenAPITools.Client;
-using Org.OpenAPITools.Model;
-
-namespace Example
-{
-    public class getAllCollectionsExample
-    {
-        public void main()
-        {
-
-            // Create an instance of the API class
-            var apiInstance = new CollectionsApi();
-            var accept = application/json;  // String |  (default to application/json)
-            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);
-                Debug.WriteLine(result);
-            } catch (Exception e) {
-                Debug.Print("Exception when calling CollectionsApi.getAllCollections: " + e.Message );
-            }
-        }
-    }
-}
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-php">
-                              <pre class="prettyprint"><code class="language-php"><&#63;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 | 
-$offset = 56; // Integer | Pagination offset.
-$limit = 56; // Integer | Result limiter.
-
-try {
-    $result = $api_instance->getAllCollections($accept, $offset, $limit);
-    print_r($result);
-} catch (Exception $e) {
-    echo 'Exception when calling CollectionsApi->getAllCollections: ', $e->getMessage(), PHP_EOL;
-}
-?></code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-perl">
-                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
-use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::CollectionsApi;
-
-# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
-my $accept = application/json; # String | 
-my $offset = 56; # Integer | Pagination offset.
-my $limit = 56; # Integer | Result limiter.
-
-eval {
-    my $result = $api_instance->getAllCollections(accept => $accept, offset => $offset, limit => $limit);
-    print Dumper($result);
-};
-if ($@) {
-    warn "Exception when calling CollectionsApi->getAllCollections: $@\n";
-}</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-python">
-                              <pre class="prettyprint"><code class="language-python">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.CollectionsApi()
-accept = application/json # String |  (default to application/json)
-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)
-    pprint(api_response)
-except ApiException as e:
-    print("Exception when calling CollectionsApi->getAllCollections: %s\n" % e)</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getAllCollections-0-rust">
-                              <pre class="prettyprint"><code class="language-rust">extern crate CollectionsApi;
-
-pub fn main() {
-    let accept = application/json; // String
-    let offset = 56; // Integer
-    let limit = 56; // Integer
-
-    let mut context = CollectionsApi::Context::default();
-    let result = client.getAllCollections(accept, offset, limit, &context).wait();
-
-    println!("{:?}", result);
-}
-</code></pre>
-                            </div>
-                          </div>
-
-                          <h2>Scopes</h2>
-                          <table>
-                            
-                          </table>
-
-                          <h2>Parameters</h2>
-
-
-                            <div class="methodsubtabletitle">Header parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                  <tr><td style="width:150px;">Accept*</td>
-<td>
-
-
-    <div id="d2e199_getAllCollections_accept">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-
-
-                            <div class="methodsubtabletitle">Query parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                <tr><td style="width:150px;">offset</td>
-<td>
-
-
-    <div id="d2e199_getAllCollections_offset">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    Integer
-                </span>
-
-                    <div class="inner description marked">
-Pagination offset.
-                    </div>
-            </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                                <tr><td style="width:150px;">limit</td>
-<td>
-
-
-    <div id="d2e199_getAllCollections_limit">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    Integer
-                </span>
-
-                    <div class="inner description marked">
-Result limiter.
-                    </div>
-            </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                          <h2>Responses</h2>
-                            <h3 id="examples-Collections-getAllCollections-title-200"></h3>
-                            <p id="examples-Collections-getAllCollections-description-200" class="marked"></p>
-                            <script>
-                              var responseCollections200_description = `OK`;
-                              var responseCollections200_description_break = responseCollections200_description.indexOf('\n');
-                              if (responseCollections200_description_break == -1) {
-                                $("#examples-Collections-getAllCollections-title-200").text("Status: 200 - " + responseCollections200_description);
-                              } else {
-                                $("#examples-Collections-getAllCollections-title-200").text("Status: 200 - " + responseCollections200_description.substring(0, responseCollections200_description_break));
-                                $("#examples-Collections-getAllCollections-description-200").html(responseCollections200_description.substring(responseCollections200_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getAllCollections-200" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getAllCollections-200-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getAllCollections-200-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getAllCollections-200-schema">
-                                <div id="responses-Collections-getAllCollections-schema-200" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "OK",
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/Collections"
-      },
-      "examples" : {
-        "collections" : {
-          "$ref" : "#/components/examples/CollectionsResponseExample"
-        }
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getAllCollections-200-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getAllCollections-schema-200');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getAllCollections-200-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getAllCollections-title-204"></h3>
-                            <p id="examples-Collections-getAllCollections-description-204" class="marked"></p>
-                            <script>
-                              var responseCollections204_description = `No Content`;
-                              var responseCollections204_description_break = responseCollections204_description.indexOf('\n');
-                              if (responseCollections204_description_break == -1) {
-                                $("#examples-Collections-getAllCollections-title-204").text("Status: 204 - " + responseCollections204_description);
-                              } else {
-                                $("#examples-Collections-getAllCollections-title-204").text("Status: 204 - " + responseCollections204_description.substring(0, responseCollections204_description_break));
-                                $("#examples-Collections-getAllCollections-description-204").html(responseCollections204_description.substring(responseCollections204_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getAllCollections-204" class="nav nav-tabs nav-tabs-examples" >
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getAllCollections-204-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getAllCollections-204-schema">
-                                <div id="responses-Collections-getAllCollections-schema-204" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "No Content",
-  "content" : { }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getAllCollections-204-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getAllCollections-schema-204');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getAllCollections-204-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getAllCollections-title-400"></h3>
-                            <p id="examples-Collections-getAllCollections-description-400" class="marked"></p>
-                            <script>
-                              var responseCollections400_description = `Bad Request`;
-                              var responseCollections400_description_break = responseCollections400_description.indexOf('\n');
-                              if (responseCollections400_description_break == -1) {
-                                $("#examples-Collections-getAllCollections-title-400").text("Status: 400 - " + responseCollections400_description);
-                              } else {
-                                $("#examples-Collections-getAllCollections-title-400").text("Status: 400 - " + responseCollections400_description.substring(0, responseCollections400_description_break));
-                                $("#examples-Collections-getAllCollections-description-400").html(responseCollections400_description.substring(responseCollections400_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getAllCollections-400" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getAllCollections-400-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getAllCollections-400-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getAllCollections-400-schema">
-                                <div id="responses-Collections-getAllCollections-schema-400" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Bad Request",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "400",
-        "title" : "Bad Request",
-        "details" : "The provided request is not valid"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getAllCollections-400-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getAllCollections-schema-400');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getAllCollections-400-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getAllCollections-title-401"></h3>
-                            <p id="examples-Collections-getAllCollections-description-401" class="marked"></p>
-                            <script>
-                              var responseCollections401_description = `Unauthorized`;
-                              var responseCollections401_description_break = responseCollections401_description.indexOf('\n');
-                              if (responseCollections401_description_break == -1) {
-                                $("#examples-Collections-getAllCollections-title-401").text("Status: 401 - " + responseCollections401_description);
-                              } else {
-                                $("#examples-Collections-getAllCollections-title-401").text("Status: 401 - " + responseCollections401_description.substring(0, responseCollections401_description_break));
-                                $("#examples-Collections-getAllCollections-description-401").html(responseCollections401_description.substring(responseCollections401_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getAllCollections-401" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getAllCollections-401-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getAllCollections-401-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getAllCollections-401-schema">
-                                <div id="responses-Collections-getAllCollections-schema-401" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Unauthorized",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "401",
-        "title" : "Unauthorized request",
-        "details" : "This request is unauthorized"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getAllCollections-401-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getAllCollections-schema-401');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getAllCollections-401-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getAllCollections-title-403"></h3>
-                            <p id="examples-Collections-getAllCollections-description-403" class="marked"></p>
-                            <script>
-                              var responseCollections403_description = `Forbidden`;
-                              var responseCollections403_description_break = responseCollections403_description.indexOf('\n');
-                              if (responseCollections403_description_break == -1) {
-                                $("#examples-Collections-getAllCollections-title-403").text("Status: 403 - " + responseCollections403_description);
-                              } else {
-                                $("#examples-Collections-getAllCollections-title-403").text("Status: 403 - " + responseCollections403_description.substring(0, responseCollections403_description_break));
-                                $("#examples-Collections-getAllCollections-description-403").html(responseCollections403_description.substring(responseCollections403_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getAllCollections-403" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getAllCollections-403-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getAllCollections-403-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getAllCollections-403-schema">
-                                <div id="responses-Collections-getAllCollections-schema-403" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Forbidden",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "403",
-        "title" : "Request Forbidden",
-        "details" : "This request is forbidden"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getAllCollections-403-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getAllCollections-schema-403');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getAllCollections-403-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getAllCollections-title-500"></h3>
-                            <p id="examples-Collections-getAllCollections-description-500" class="marked"></p>
-                            <script>
-                              var responseCollections500_description = `Internal Server Error`;
-                              var responseCollections500_description_break = responseCollections500_description.indexOf('\n');
-                              if (responseCollections500_description_break == -1) {
-                                $("#examples-Collections-getAllCollections-title-500").text("Status: 500 - " + responseCollections500_description);
-                              } else {
-                                $("#examples-Collections-getAllCollections-title-500").text("Status: 500 - " + responseCollections500_description.substring(0, responseCollections500_description_break));
-                                $("#examples-Collections-getAllCollections-description-500").html(responseCollections500_description.substring(responseCollections500_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getAllCollections-500" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getAllCollections-500-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getAllCollections-500-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getAllCollections-500-schema">
-                                <div id="responses-Collections-getAllCollections-schema-500" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Internal Server Error",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "500",
-        "title" : "Internal Server Error",
-        "details" : "Internal Server Error occurred"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getAllCollections-500-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getAllCollections-schema-500');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getAllCollections-500-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                        </article>
-                      </div>
-                      <hr>
-                    <div id="api-Collections-getCollection">
-                      <article id="api-Collections-getCollection-0" data-group="User" data-name="getCollection" data-version="0">
-                        <div class="pull-left">
-                          <h1>getCollection</h1>
-                          <p>Get a collection with specified id.</p>
-                        </div>
-                        <div class="pull-right"></div>
-                        <div class="clearfix"></div>
-                        <p></p>
-                        <p class="marked">Get a collection with specified id.</p>
-                        <p></p>
-                        <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/collections/{collectionId}</span></code></pre>
-                        <p>
-                          <h3>Usage and SDK Samples</h3>
-                        </p>
-                        <ul class="nav nav-tabs nav-tabs-examples">
-                          <li class="active"><a href="#examples-Collections-getCollection-0-curl">Curl</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-java">Java</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-dart">Dart</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-android">Android</a></li>
-                          <!--<li class=""><a href="#examples-Collections-getCollection-0-groovy">Groovy</a></li>-->
-                          <li class=""><a href="#examples-Collections-getCollection-0-objc">Obj-C</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-javascript">JavaScript</a></li>
-                          <!--<li class=""><a href="#examples-Collections-getCollection-0-angular">Angular</a></li>-->
-                          <li class=""><a href="#examples-Collections-getCollection-0-csharp">C#</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-php">PHP</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-perl">Perl</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-python">Python</a></li>
-                          <li class=""><a href="#examples-Collections-getCollection-0-rust">Rust</a></li>
-                        </ul>
-
-                        <div class="tab-content">
-                          <div class="tab-pane active" id="examples-Collections-getCollection-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json,application/problem+json" \
- "https://localhost/topology-inventory/v1alpha11/collections/{collectionId}"
-</code></pre>
-                          </div>
-                          <div class="tab-pane" id="examples-Collections-getCollection-0-java">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
-import org.openapitools.client.auth.*;
-import org.openapitools.client.model.*;
-import org.openapitools.client.api.CollectionsApi;
-
-import java.io.File;
-import java.util.*;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-
-        // Create an instance of the API class
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        String collectionId = collectionId_example; // String | 
-
-        try {
-            CollectionResponse result = apiInstance.getCollection(accept, collectionId);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#getCollection");
-            e.printStackTrace();
-        }
-    }
-}
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-getCollection-0-dart">
-                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
-
-final api_instance = DefaultApi();
-
-final String accept = new String(); // String | 
-final String collectionId = new String(); // String | 
-
-try {
-    final result = await api_instance.getCollection(accept, collectionId);
-    print(result);
-} catch (e) {
-    print('Exception when calling DefaultApi->getCollection: $e\n');
-}
-
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-getCollection-0-android">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.CollectionsApi;
-
-public class CollectionsApiExample {
-    public static void main(String[] args) {
-        CollectionsApi apiInstance = new CollectionsApi();
-        String accept = application/json; // String | 
-        String collectionId = collectionId_example; // String | 
-
-        try {
-            CollectionResponse result = apiInstance.getCollection(accept, collectionId);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#getCollection");
-            e.printStackTrace();
-        }
-    }
-}</code></pre>
-                          </div>
-  <!--
-  <div class="tab-pane" id="examples-Collections-getCollection-0-groovy">
-  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-  </div> -->
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">
-
-// Create an instance of the API class
-CollectionsApi *apiInstance = [[CollectionsApi alloc] init];
-String *accept = application/json; //  (default to application/json)
-String *collectionId = collectionId_example; //  (default to null)
-
-// Get a collection with specified id.
-[apiInstance getCollectionWith:accept
-    collectionId:collectionId
-              completionHandler: ^(CollectionResponse output, NSError* error) {
-    if (output) {
-        NSLog(@"%@", output);
-    }
-    if (error) {
-        NSLog(@"Error: %@", error);
-    }
-}];
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
-
-// Create an instance of the API class
-var api = new TopologyAndInventoryApi.CollectionsApi()
-var accept = application/json; // {String} 
-var collectionId = collectionId_example; // {String} 
-
-var callback = function(error, data, response) {
-  if (error) {
-    console.error(error);
-  } else {
-    console.log('API called successfully. Returned data: ' + data);
-  }
-};
-api.getCollection(accept, collectionId, callback);
-</code></pre>
-                            </div>
-
-                            <!--<div class="tab-pane" id="examples-Collections-getCollection-0-angular">
-              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-            </div>-->
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-csharp">
-                              <pre class="prettyprint"><code class="language-cs">using System;
-using System.Diagnostics;
-using Org.OpenAPITools.Api;
-using Org.OpenAPITools.Client;
-using Org.OpenAPITools.Model;
-
-namespace Example
-{
-    public class getCollectionExample
-    {
-        public void main()
-        {
-
-            // Create an instance of the API class
-            var apiInstance = new CollectionsApi();
-            var accept = application/json;  // String |  (default to application/json)
-            var collectionId = collectionId_example;  // String |  (default to null)
-
-            try {
-                // Get a collection with specified id.
-                CollectionResponse result = apiInstance.getCollection(accept, collectionId);
-                Debug.WriteLine(result);
-            } catch (Exception e) {
-                Debug.Print("Exception when calling CollectionsApi.getCollection: " + e.Message );
-            }
-        }
-    }
-}
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-php">
-                              <pre class="prettyprint"><code class="language-php"><&#63;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 | 
-$collectionId = collectionId_example; // String | 
-
-try {
-    $result = $api_instance->getCollection($accept, $collectionId);
-    print_r($result);
-} catch (Exception $e) {
-    echo 'Exception when calling CollectionsApi->getCollection: ', $e->getMessage(), PHP_EOL;
-}
-?></code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-perl">
-                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
-use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::CollectionsApi;
-
-# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::CollectionsApi->new();
-my $accept = application/json; # String | 
-my $collectionId = collectionId_example; # String | 
-
-eval {
-    my $result = $api_instance->getCollection(accept => $accept, collectionId => $collectionId);
-    print Dumper($result);
-};
-if ($@) {
-    warn "Exception when calling CollectionsApi->getCollection: $@\n";
-}</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-python">
-                              <pre class="prettyprint"><code class="language-python">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.CollectionsApi()
-accept = application/json # String |  (default to application/json)
-collectionId = collectionId_example # String |  (default to null)
-
-try:
-    # Get a collection with specified id.
-    api_response = api_instance.get_collection(accept, collectionId)
-    pprint(api_response)
-except ApiException as e:
-    print("Exception when calling CollectionsApi->getCollection: %s\n" % e)</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-getCollection-0-rust">
-                              <pre class="prettyprint"><code class="language-rust">extern crate CollectionsApi;
-
-pub fn main() {
-    let accept = application/json; // String
-    let collectionId = collectionId_example; // String
-
-    let mut context = CollectionsApi::Context::default();
-    let result = client.getCollection(accept, collectionId, &context).wait();
-
-    println!("{:?}", result);
-}
-</code></pre>
-                            </div>
-                          </div>
-
-                          <h2>Scopes</h2>
-                          <table>
-                            
-                          </table>
-
-                          <h2>Parameters</h2>
-
-                            <div class="methodsubtabletitle">Path parameters</div>
-                            <table id="methodsubtable">
-                                <tr>
-                                  <th width="150px">Name</th>
-                                  <th>Description</th>
-                                </tr>
-                                  <tr><td style="width:150px;">collectionId*</td>
-<td>
-
-
-    <div id="d2e199_getCollection_collectionId">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                            <div class="methodsubtabletitle">Header parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                  <tr><td style="width:150px;">Accept*</td>
-<td>
-
-
-    <div id="d2e199_getCollection_accept">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-
-
-
-                          <h2>Responses</h2>
-                            <h3 id="examples-Collections-getCollection-title-200"></h3>
-                            <p id="examples-Collections-getCollection-description-200" class="marked"></p>
-                            <script>
-                              var responseCollections200_description = `OK`;
-                              var responseCollections200_description_break = responseCollections200_description.indexOf('\n');
-                              if (responseCollections200_description_break == -1) {
-                                $("#examples-Collections-getCollection-title-200").text("Status: 200 - " + responseCollections200_description);
-                              } else {
-                                $("#examples-Collections-getCollection-title-200").text("Status: 200 - " + responseCollections200_description.substring(0, responseCollections200_description_break));
-                                $("#examples-Collections-getCollection-description-200").html(responseCollections200_description.substring(responseCollections200_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getCollection-200" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getCollection-200-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getCollection-200-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getCollection-200-schema">
-                                <div id="responses-Collections-getCollection-schema-200" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "OK",
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/CollectionResponse"
-      },
-      "examples" : {
-        "collection" : {
-          "$ref" : "#/components/examples/CollectionResponseExample"
-        }
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getCollection-200-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getCollection-schema-200');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getCollection-200-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getCollection-title-400"></h3>
-                            <p id="examples-Collections-getCollection-description-400" class="marked"></p>
-                            <script>
-                              var responseCollections400_description = `Bad Request`;
-                              var responseCollections400_description_break = responseCollections400_description.indexOf('\n');
-                              if (responseCollections400_description_break == -1) {
-                                $("#examples-Collections-getCollection-title-400").text("Status: 400 - " + responseCollections400_description);
-                              } else {
-                                $("#examples-Collections-getCollection-title-400").text("Status: 400 - " + responseCollections400_description.substring(0, responseCollections400_description_break));
-                                $("#examples-Collections-getCollection-description-400").html(responseCollections400_description.substring(responseCollections400_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getCollection-400" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getCollection-400-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getCollection-400-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getCollection-400-schema">
-                                <div id="responses-Collections-getCollection-schema-400" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Bad Request",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "400",
-        "title" : "Bad Request",
-        "details" : "The provided request is not valid"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getCollection-400-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getCollection-schema-400');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getCollection-400-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getCollection-title-401"></h3>
-                            <p id="examples-Collections-getCollection-description-401" class="marked"></p>
-                            <script>
-                              var responseCollections401_description = `Unauthorized`;
-                              var responseCollections401_description_break = responseCollections401_description.indexOf('\n');
-                              if (responseCollections401_description_break == -1) {
-                                $("#examples-Collections-getCollection-title-401").text("Status: 401 - " + responseCollections401_description);
-                              } else {
-                                $("#examples-Collections-getCollection-title-401").text("Status: 401 - " + responseCollections401_description.substring(0, responseCollections401_description_break));
-                                $("#examples-Collections-getCollection-description-401").html(responseCollections401_description.substring(responseCollections401_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getCollection-401" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getCollection-401-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getCollection-401-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getCollection-401-schema">
-                                <div id="responses-Collections-getCollection-schema-401" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Unauthorized",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "401",
-        "title" : "Unauthorized request",
-        "details" : "This request is unauthorized"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getCollection-401-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getCollection-schema-401');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getCollection-401-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getCollection-title-403"></h3>
-                            <p id="examples-Collections-getCollection-description-403" class="marked"></p>
-                            <script>
-                              var responseCollections403_description = `Forbidden`;
-                              var responseCollections403_description_break = responseCollections403_description.indexOf('\n');
-                              if (responseCollections403_description_break == -1) {
-                                $("#examples-Collections-getCollection-title-403").text("Status: 403 - " + responseCollections403_description);
-                              } else {
-                                $("#examples-Collections-getCollection-title-403").text("Status: 403 - " + responseCollections403_description.substring(0, responseCollections403_description_break));
-                                $("#examples-Collections-getCollection-description-403").html(responseCollections403_description.substring(responseCollections403_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getCollection-403" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getCollection-403-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getCollection-403-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getCollection-403-schema">
-                                <div id="responses-Collections-getCollection-schema-403" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Forbidden",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "403",
-        "title" : "Request Forbidden",
-        "details" : "This request is forbidden"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getCollection-403-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getCollection-schema-403');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getCollection-403-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getCollection-title-404"></h3>
-                            <p id="examples-Collections-getCollection-description-404" class="marked"></p>
-                            <script>
-                              var responseCollections404_description = `Not Found`;
-                              var responseCollections404_description_break = responseCollections404_description.indexOf('\n');
-                              if (responseCollections404_description_break == -1) {
-                                $("#examples-Collections-getCollection-title-404").text("Status: 404 - " + responseCollections404_description);
-                              } else {
-                                $("#examples-Collections-getCollection-title-404").text("Status: 404 - " + responseCollections404_description.substring(0, responseCollections404_description_break));
-                                $("#examples-Collections-getCollection-description-404").html(responseCollections404_description.substring(responseCollections404_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getCollection-404" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getCollection-404-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getCollection-404-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getCollection-404-schema">
-                                <div id="responses-Collections-getCollection-schema-404" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Not Found",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "404",
-        "title" : "Resource Not Found",
-        "details" : "The requested resource is not found"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getCollection-404-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getCollection-schema-404');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getCollection-404-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-getCollection-title-500"></h3>
-                            <p id="examples-Collections-getCollection-description-500" class="marked"></p>
-                            <script>
-                              var responseCollections500_description = `Internal Server Error`;
-                              var responseCollections500_description_break = responseCollections500_description.indexOf('\n');
-                              if (responseCollections500_description_break == -1) {
-                                $("#examples-Collections-getCollection-title-500").text("Status: 500 - " + responseCollections500_description);
-                              } else {
-                                $("#examples-Collections-getCollection-title-500").text("Status: 500 - " + responseCollections500_description.substring(0, responseCollections500_description_break));
-                                $("#examples-Collections-getCollection-description-500").html(responseCollections500_description.substring(responseCollections500_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-getCollection-500" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-getCollection-500-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-getCollection-500-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-getCollection-500-schema">
-                                <div id="responses-Collections-getCollection-schema-500" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Internal Server Error",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "500",
-        "title" : "Internal Server Error",
-        "details" : "Internal Server Error occurred"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-getCollection-500-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-getCollection-schema-500');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-getCollection-500-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                        </article>
-                      </div>
-                      <hr>
-                    <div id="api-Collections-updateCollection">
-                      <article id="api-Collections-updateCollection-0" data-group="User" data-name="updateCollection" data-version="0">
-                        <div class="pull-left">
-                          <h1>updateCollection</h1>
-                          <p>Update a collection.</p>
-                        </div>
-                        <div class="pull-right"></div>
-                        <div class="clearfix"></div>
-                        <p></p>
-                        <p class="marked">Update a collection.</p>
-                        <p></p>
-                        <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/collections/{collectionId}</span></code></pre>
-                        <p>
-                          <h3>Usage and SDK Samples</h3>
-                        </p>
-                        <ul class="nav nav-tabs nav-tabs-examples">
-                          <li class="active"><a href="#examples-Collections-updateCollection-0-curl">Curl</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-java">Java</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-dart">Dart</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-android">Android</a></li>
-                          <!--<li class=""><a href="#examples-Collections-updateCollection-0-groovy">Groovy</a></li>-->
-                          <li class=""><a href="#examples-Collections-updateCollection-0-objc">Obj-C</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-javascript">JavaScript</a></li>
-                          <!--<li class=""><a href="#examples-Collections-updateCollection-0-angular">Angular</a></li>-->
-                          <li class=""><a href="#examples-Collections-updateCollection-0-csharp">C#</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-php">PHP</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-perl">Perl</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-python">Python</a></li>
-                          <li class=""><a href="#examples-Collections-updateCollection-0-rust">Rust</a></li>
-                        </ul>
-
-                        <div class="tab-content">
-                          <div class="tab-pane active" id="examples-Collections-updateCollection-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: application/problem+json" \
- -H "Content-Type: application/json" \
- "https://localhost/topology-inventory/v1alpha11/collections/{collectionId}" \
- -d '{
-  &quot;criteria&quot; : {
-    &quot;resourceInstances&quot; : [ &quot;resourceInstances&quot;, &quot;resourceInstances&quot; ]
-  },
-  &quot;collectionName&quot; : &quot;collectionName&quot;
-}'
-</code></pre>
-                          </div>
-                          <div class="tab-pane" id="examples-Collections-updateCollection-0-java">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
-import org.openapitools.client.auth.*;
-import org.openapitools.client.model.*;
-import org.openapitools.client.api.CollectionsApi;
-
-import java.io.File;
-import java.util.*;
-
-public class CollectionsApiExample {
-    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 | 
-
-        try {
-            apiInstance.updateCollection(accept, contentType, collectionId, collection);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#updateCollection");
-            e.printStackTrace();
-        }
-    }
-}
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-updateCollection-0-dart">
-                            <pre class="prettyprint"><code class="language-dart">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 | 
-
-try {
-    final result = await api_instance.updateCollection(accept, contentType, collectionId, collection);
-    print(result);
-} catch (e) {
-    print('Exception when calling DefaultApi->updateCollection: $e\n');
-}
-
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-Collections-updateCollection-0-android">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.CollectionsApi;
-
-public class CollectionsApiExample {
-    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 | 
-
-        try {
-            apiInstance.updateCollection(accept, contentType, collectionId, collection);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling CollectionsApi#updateCollection");
-            e.printStackTrace();
-        }
-    }
-}</code></pre>
-                          </div>
-  <!--
-  <div class="tab-pane" id="examples-Collections-updateCollection-0-groovy">
-  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-  </div> -->
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">
-
-// 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 = ; // 
-
-// Update a collection.
-[apiInstance updateCollectionWith:accept
-    contentType:contentType
-    collectionId:collectionId
-    collection:collection
-              completionHandler: ^(NSError* error) {
-    if (error) {
-        NSLog(@"Error: %@", error);
-    }
-}];
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_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 callback = function(error, data, response) {
-  if (error) {
-    console.error(error);
-  } else {
-    console.log('API called successfully.');
-  }
-};
-api.updateCollection(accept, contentType, collectionId, collection, callback);
-</code></pre>
-                            </div>
-
-                            <!--<div class="tab-pane" id="examples-Collections-updateCollection-0-angular">
-              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-            </div>-->
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-csharp">
-                              <pre class="prettyprint"><code class="language-cs">using System;
-using System.Diagnostics;
-using Org.OpenAPITools.Api;
-using Org.OpenAPITools.Client;
-using Org.OpenAPITools.Model;
-
-namespace Example
-{
-    public class updateCollectionExample
-    {
-        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 | 
-
-            try {
-                // Update a collection.
-                apiInstance.updateCollection(accept, contentType, collectionId, collection);
-            } catch (Exception e) {
-                Debug.Print("Exception when calling CollectionsApi.updateCollection: " + e.Message );
-            }
-        }
-    }
-}
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-php">
-                              <pre class="prettyprint"><code class="language-php"><&#63;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 | 
-
-try {
-    $api_instance->updateCollection($accept, $contentType, $collectionId, $collection);
-} catch (Exception $e) {
-    echo 'Exception when calling CollectionsApi->updateCollection: ', $e->getMessage(), PHP_EOL;
-}
-?></code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-perl">
-                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
-use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::CollectionsApi;
-
-# 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 | 
-
-eval {
-    $api_instance->updateCollection(accept => $accept, contentType => $contentType, collectionId => $collectionId, collection => $collection);
-};
-if ($@) {
-    warn "Exception when calling CollectionsApi->updateCollection: $@\n";
-}</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-python">
-                              <pre class="prettyprint"><code class="language-python">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.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 | 
-
-try:
-    # Update a collection.
-    api_instance.update_collection(accept, contentType, collectionId, collection)
-except ApiException as e:
-    print("Exception when calling CollectionsApi->updateCollection: %s\n" % e)</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-Collections-updateCollection-0-rust">
-                              <pre class="prettyprint"><code class="language-rust">extern crate CollectionsApi;
-
-pub fn main() {
-    let accept = application/json; // String
-    let contentType = application/json; // String
-    let collectionId = collectionId_example; // String
-    let collection = ; // Collection
-
-    let mut context = CollectionsApi::Context::default();
-    let result = client.updateCollection(accept, contentType, collectionId, collection, &context).wait();
-
-    println!("{:?}", result);
-}
-</code></pre>
-                            </div>
-                          </div>
-
-                          <h2>Scopes</h2>
-                          <table>
-                            
-                          </table>
-
-                          <h2>Parameters</h2>
-
-                            <div class="methodsubtabletitle">Path parameters</div>
-                            <table id="methodsubtable">
-                                <tr>
-                                  <th width="150px">Name</th>
-                                  <th>Description</th>
-                                </tr>
-                                  <tr><td style="width:150px;">collectionId*</td>
-<td>
-
-
-    <div id="d2e199_updateCollection_collectionId">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                            <div class="methodsubtabletitle">Header parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                  <tr><td style="width:150px;">Accept*</td>
-<td>
-
-
-    <div id="d2e199_updateCollection_accept">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                                  <tr><td style="width:150px;">Content-Type*</td>
-<td>
-
-
-    <div id="d2e199_updateCollection_contentType">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                            <div class="methodsubtabletitle">Body parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                <tr><td style="width:150px;">collection <span style="color:red;">*</span></td>
-<td>
-<p class="marked"></p>
-<script>
-$(document).ready(function() {
-  var schemaWrapper = {
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/Collection"
-      },
-      "examples" : {
-        "dynamicCollection" : {
-          "$ref" : "#/components/examples/DynamicCollectionExample"
-        },
-        "staticCollection" : {
-          "$ref" : "#/components/examples/StaticCollectionExample"
-        }
-      }
-    }
-  },
-  "required" : true
-};
-
-  var schema = findNode('schema',schemaWrapper).schema;
-  if (!schema) {
-    schema = schemaWrapper.schema;
-  }
-  if (schema.$ref != null) {
-    schema = defsParser.$refs.get(schema.$ref);
-  } else if (schema.items != null && schema.items.$ref != null) {
-    schema.items = defsParser.$refs.get(schema.items.$ref);
-  } else {
-    schemaWrapper.definitions = Object.assign({}, defs);
-    $RefParser.dereference(schemaWrapper).catch(function(err) {
-      console.log(err);
-    });
-  }
-
-  var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_updateCollection_collection');
-  result.empty();
-  result.append(view.render());
-});
-</script>
-<div id="d2e199_updateCollection_collection"></div>
-</td>
-</tr>
-
-                            </table>
-
-
-
-                          <h2>Responses</h2>
-                            <h3 id="examples-Collections-updateCollection-title-204"></h3>
-                            <p id="examples-Collections-updateCollection-description-204" class="marked"></p>
-                            <script>
-                              var responseCollections204_description = `No Content`;
-                              var responseCollections204_description_break = responseCollections204_description.indexOf('\n');
-                              if (responseCollections204_description_break == -1) {
-                                $("#examples-Collections-updateCollection-title-204").text("Status: 204 - " + responseCollections204_description);
-                              } else {
-                                $("#examples-Collections-updateCollection-title-204").text("Status: 204 - " + responseCollections204_description.substring(0, responseCollections204_description_break));
-                                $("#examples-Collections-updateCollection-description-204").html(responseCollections204_description.substring(responseCollections204_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-updateCollection-204" class="nav nav-tabs nav-tabs-examples" >
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-updateCollection-204-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-updateCollection-204-schema">
-                                <div id="responses-Collections-updateCollection-schema-204" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "No Content",
-  "content" : { }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-updateCollection-204-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-updateCollection-schema-204');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-updateCollection-204-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-updateCollection-title-400"></h3>
-                            <p id="examples-Collections-updateCollection-description-400" class="marked"></p>
-                            <script>
-                              var responseCollections400_description = `Bad Request`;
-                              var responseCollections400_description_break = responseCollections400_description.indexOf('\n');
-                              if (responseCollections400_description_break == -1) {
-                                $("#examples-Collections-updateCollection-title-400").text("Status: 400 - " + responseCollections400_description);
-                              } else {
-                                $("#examples-Collections-updateCollection-title-400").text("Status: 400 - " + responseCollections400_description.substring(0, responseCollections400_description_break));
-                                $("#examples-Collections-updateCollection-description-400").html(responseCollections400_description.substring(responseCollections400_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-updateCollection-400" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-updateCollection-400-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-updateCollection-400-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-updateCollection-400-schema">
-                                <div id="responses-Collections-updateCollection-schema-400" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Bad Request",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "400",
-        "title" : "Bad Request",
-        "details" : "The provided request is not valid"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-updateCollection-400-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-updateCollection-schema-400');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-updateCollection-400-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-updateCollection-title-401"></h3>
-                            <p id="examples-Collections-updateCollection-description-401" class="marked"></p>
-                            <script>
-                              var responseCollections401_description = `Unauthorized`;
-                              var responseCollections401_description_break = responseCollections401_description.indexOf('\n');
-                              if (responseCollections401_description_break == -1) {
-                                $("#examples-Collections-updateCollection-title-401").text("Status: 401 - " + responseCollections401_description);
-                              } else {
-                                $("#examples-Collections-updateCollection-title-401").text("Status: 401 - " + responseCollections401_description.substring(0, responseCollections401_description_break));
-                                $("#examples-Collections-updateCollection-description-401").html(responseCollections401_description.substring(responseCollections401_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-updateCollection-401" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-updateCollection-401-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-updateCollection-401-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-updateCollection-401-schema">
-                                <div id="responses-Collections-updateCollection-schema-401" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Unauthorized",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "401",
-        "title" : "Unauthorized request",
-        "details" : "This request is unauthorized"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-updateCollection-401-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-updateCollection-schema-401');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-updateCollection-401-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-updateCollection-title-403"></h3>
-                            <p id="examples-Collections-updateCollection-description-403" class="marked"></p>
-                            <script>
-                              var responseCollections403_description = `Forbidden`;
-                              var responseCollections403_description_break = responseCollections403_description.indexOf('\n');
-                              if (responseCollections403_description_break == -1) {
-                                $("#examples-Collections-updateCollection-title-403").text("Status: 403 - " + responseCollections403_description);
-                              } else {
-                                $("#examples-Collections-updateCollection-title-403").text("Status: 403 - " + responseCollections403_description.substring(0, responseCollections403_description_break));
-                                $("#examples-Collections-updateCollection-description-403").html(responseCollections403_description.substring(responseCollections403_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-updateCollection-403" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-updateCollection-403-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-updateCollection-403-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-updateCollection-403-schema">
-                                <div id="responses-Collections-updateCollection-schema-403" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Forbidden",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "403",
-        "title" : "Request Forbidden",
-        "details" : "This request is forbidden"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-updateCollection-403-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-updateCollection-schema-403');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-updateCollection-403-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-updateCollection-title-409"></h3>
-                            <p id="examples-Collections-updateCollection-description-409" class="marked"></p>
-                            <script>
-                              var responseCollections409_description = `Conflict`;
-                              var responseCollections409_description_break = responseCollections409_description.indexOf('\n');
-                              if (responseCollections409_description_break == -1) {
-                                $("#examples-Collections-updateCollection-title-409").text("Status: 409 - " + responseCollections409_description);
-                              } else {
-                                $("#examples-Collections-updateCollection-title-409").text("Status: 409 - " + responseCollections409_description.substring(0, responseCollections409_description_break));
-                                $("#examples-Collections-updateCollection-description-409").html(responseCollections409_description.substring(responseCollections409_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-updateCollection-409" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-updateCollection-409-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-updateCollection-409-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-updateCollection-409-schema">
-                                <div id="responses-Collections-updateCollection-schema-409" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Conflict",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "409'",
-        "title" : "Conflicting request",
-        "details" : "The request cannot be processed as the resource is in use."
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-updateCollection-409-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-updateCollection-schema-409');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-updateCollection-409-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-Collections-updateCollection-title-500"></h3>
-                            <p id="examples-Collections-updateCollection-description-500" class="marked"></p>
-                            <script>
-                              var responseCollections500_description = `Internal Server Error`;
-                              var responseCollections500_description_break = responseCollections500_description.indexOf('\n');
-                              if (responseCollections500_description_break == -1) {
-                                $("#examples-Collections-updateCollection-title-500").text("Status: 500 - " + responseCollections500_description);
-                              } else {
-                                $("#examples-Collections-updateCollection-title-500").text("Status: 500 - " + responseCollections500_description.substring(0, responseCollections500_description_break));
-                                $("#examples-Collections-updateCollection-description-500").html(responseCollections500_description.substring(responseCollections500_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-Collections-updateCollection-500" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-Collections-updateCollection-500-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-Collections-updateCollection-500-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-Collections-updateCollection-500-schema">
-                                <div id="responses-Collections-updateCollection-schema-500" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Internal Server Error",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "500",
-        "title" : "Internal Server Error",
-        "details" : "Internal Server Error occurred"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-Collections-updateCollection-500-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-Collections-updateCollection-schema-500');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-Collections-updateCollection-500-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                        </article>
-                      </div>
-                      <hr>
-                  </section>
                 <section id="api-Decorators">
                   <h1>Decorators</h1>
                     <div id="api-Decorators-updateDecorator">
@@ -6492,10 +2323,10 @@
                         <div class="pull-right"></div>
                         <div class="clearfix"></div>
                         <p></p>
-                        <p class="marked">Update entities and/or relationships with decorator(s).</p>
+                        <p class="marked">Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.</p>
                         <p></p>
                         <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/decorators</span></code></pre>
+                        <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/decorators</span></code></pre>
                         <p>
                           <h3>Usage and SDK Samples</h3>
                         </p>
@@ -6517,13 +2348,13 @@
 
                         <div class="tab-content">
                           <div class="tab-pane active" id="examples-Decorators-updateDecorator-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">curl -X PUT \
+                            <pre class="prettyprint"><code class="language-bsh">curl -X POST \
  -H "Accept: application/problem+json" \
  -H "Content-Type: application/json" \
  "https://localhost/topology-inventory/v1alpha11/decorators" \
  -d '{
   &quot;decorators&quot; : {
-    &quot;key&quot; : &quot;decorators&quot;
+    &quot;key&quot; : &quot;&quot;
   },
   &quot;relationshipIds&quot; : [ &quot;relationshipIds&quot;, &quot;relationshipIds&quot; ],
   &quot;operation&quot; : &quot;merge&quot;,
@@ -6624,10 +2455,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-Decorators-updateDecorator-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
 
 // Create an instance of the API class
-var api = new TopologyAndInventoryApi.DecoratorsApi()
+var api = new TopologyExposureAndInventoryApi.DecoratorsApi()
 var accept = application/json; // {String} 
 var contentType = application/json; // {String} 
 var decorator = ; // {Decorator} 
@@ -7211,7 +3042,7 @@
         "$ref" : "#/components/schemas/ErrorMessage"
       },
       "example" : {
-        "status" : "409'",
+        "status" : "409",
         "title" : "Conflicting request",
         "details" : "The request cannot be processed as the resource is in use."
       }
@@ -7478,10 +3309,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getAllDomains-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 opts = {
   'offset': 56, // {Integer} Pagination offset.
@@ -8143,7 +3974,7 @@
                           <div class="tab-pane active" id="examples-EntitiesAndRelationships-getAllRelationshipsForEntityId-0-curl">
                             <pre class="prettyprint"><code class="language-bsh">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"
+ "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"
 </code></pre>
                           </div>
                           <div class="tab-pane" id="examples-EntitiesAndRelationships-getAllRelationshipsForEntityId-0-java">
@@ -8164,11 +3995,13 @@
         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 {
-            RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, 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 EntitiesAndRelationshipsApi#getAllRelationshipsForEntityId");
@@ -8188,11 +4021,13 @@
 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.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, 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->getAllRelationshipsForEntityId: $e\n');
@@ -8211,11 +4046,13 @@
         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 {
-            RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, 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 EntitiesAndRelationshipsApi#getAllRelationshipsForEntityId");
@@ -8237,6 +4074,8 @@
 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)
 
@@ -8245,6 +4084,8 @@
     domainName:domainName
     entityTypeName:entityTypeName
     entityId:entityId
+    targetFilter:targetFilter
+    scopeFilter:scopeFilter
     offset:offset
     limit:limit
               completionHandler: ^(RelationshipsResponseMessage output, NSError* error) {
@@ -8259,15 +4100,17 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getAllRelationshipsForEntityId-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 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.
 };
@@ -8306,12 +4149,14 @@
             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 relationships for entity type name with specified id. Specified id represents the entity instance.
-                RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit);
+                RelationshipsResponseMessage result = apiInstance.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling EntitiesAndRelationshipsApi.getAllRelationshipsForEntityId: " + e.Message );
@@ -8332,11 +4177,13 @@
 $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->getAllRelationshipsForEntityId($accept, $domainName, $entityTypeName, $entityId, $offset, $limit);
+    $result = $api_instance->getAllRelationshipsForEntityId($accept, $domainName, $entityTypeName, $entityId, $targetFilter, $scopeFilter, $offset, $limit);
     print_r($result);
 } catch (Exception $e) {
     echo 'Exception when calling EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: ', $e->getMessage(), PHP_EOL;
@@ -8355,11 +4202,13 @@
 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->getAllRelationshipsForEntityId(accept => $accept, domainName => $domainName, entityTypeName => $entityTypeName, entityId => $entityId, 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 ($@) {
@@ -8380,12 +4229,14 @@
 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 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)
+    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 EntitiesAndRelationshipsApi->getAllRelationshipsForEntityId: %s\n" % e)</code></pre>
@@ -8399,11 +4250,13 @@
     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 = EntitiesAndRelationshipsApi::Context::default();
-    let result = client.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, offset, limit, &context).wait();
+    let result = client.getAllRelationshipsForEntityId(accept, domainName, entityTypeName, entityId, targetFilter, scopeFilter, offset, limit, &context).wait();
 
     println!("{:?}", result);
 }
@@ -8525,6 +4378,46 @@
                                 <th width="150px">Name</th>
                                 <th>Description</th>
                               </tr>
+                                <tr><td style="width:150px;">targetFilter</td>
+<td>
+
+
+    <div id="d2e199_getAllRelationshipsForEntityId_targetFilter">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+                    <div class="inner description marked">
+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.
+                    </div>
+            </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                                <tr><td style="width:150px;">scopeFilter</td>
+<td>
+
+
+    <div id="d2e199_getAllRelationshipsForEntityId_scopeFilter">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+                    <div class="inner description marked">
+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.
+                    </div>
+            </div>
+        </div>
+    </div>
+</td>
+</tr>
+
                                 <tr><td style="width:150px;">offset</td>
 <td>
 
@@ -9093,7 +4986,7 @@
                           <div class="tab-pane active" id="examples-EntitiesAndRelationships-getEntitiesByDomain-0-curl">
                             <pre class="prettyprint"><code class="language-bsh">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}/entities?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]&offset=56&limit=56"
 </code></pre>
                           </div>
                           <div class="tab-pane" id="examples-EntitiesAndRelationships-getEntitiesByDomain-0-java">
@@ -9113,7 +5006,7 @@
         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.
+        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.
 
@@ -9160,7 +5053,7 @@
         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.
+        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.
 
@@ -9186,7 +5079,7 @@
 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)
+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)
 
@@ -9209,15 +5102,15 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getEntitiesByDomain-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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.
+  '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.
 };
@@ -9255,7 +5148,7 @@
             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 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)
 
@@ -9281,7 +5174,7 @@
 $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.
+$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.
 
@@ -9304,7 +5197,7 @@
 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 $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.
 
@@ -9329,7 +5222,7 @@
 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)
+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)
 
@@ -9348,7 +5241,7 @@
     let accept = application/json; // String
     let domainName = domainName_example; // String
     let targetFilter = /attributes(nCI,nRPCI); // String
-    let scopeFilter = /attributes[@nRTAC=310"]; // String
+    let scopeFilter = /attributes[@nRTAC=310]; // String
     let offset = 56; // Integer
     let limit = 56; // Integer
 
@@ -9979,7 +5872,7 @@
 
         // 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 relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
         String relationshipId = relationshipId_example; // String | 
@@ -10022,7 +5915,7 @@
 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 relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
         String relationshipId = relationshipId_example; // String | 
@@ -10046,7 +5939,7 @@
 
 // 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 *relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; //  (default to null)
 String *relationshipId = relationshipId_example; //  (default to null)
@@ -10068,11 +5961,11 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getRelationshipById-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // {String} 
 var relationshipId = relationshipId_example; // {String} 
@@ -10107,7 +6000,7 @@
 
             // 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 relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER;  // String |  (default to null)
             var relationshipId = relationshipId_example;  // String |  (default to null)
@@ -10131,7 +6024,7 @@
 
 // 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
 $relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String | 
 $relationshipId = relationshipId_example; // String | 
@@ -10152,7 +6045,7 @@
 
 # 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 $relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; # String | 
 my $relationshipId = relationshipId_example; # String | 
@@ -10175,7 +6068,7 @@
 
 # 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)
 relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER # String |  (default to null)
 relationshipId = relationshipId_example # String |  (default to null)
@@ -10192,7 +6085,7 @@
                               <pre class="prettyprint"><code class="language-rust">extern crate EntitiesAndRelationshipsApi;
 
 pub fn main() {
-    let accept = application/json; // String
+    let accept = application/yang.data+json; // String
     let domainName = domainName_example; // String
     let relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String
     let relationshipId = relationshipId_example; // String
@@ -10842,7 +6735,7 @@
                           <div class="tab-pane active" id="examples-EntitiesAndRelationships-getRelationshipsByType-0-curl">
                             <pre class="prettyprint"><code class="language-bsh">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"
+ "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/relationship-types/{relationshipTypeName}/relationships?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]&offset=56&limit=56"
 </code></pre>
                           </div>
                           <div class="tab-pane" id="examples-EntitiesAndRelationships-getRelationshipsByType-0-java">
@@ -10863,7 +6756,7 @@
         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.
+        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.
 
@@ -10912,7 +6805,7 @@
         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.
+        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.
 
@@ -10939,7 +6832,7 @@
 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)
+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)
 
@@ -10963,16 +6856,16 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getRelationshipsByType-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 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.
+  '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.
 };
@@ -11011,7 +6904,7 @@
             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 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)
 
@@ -11038,7 +6931,7 @@
 $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.
+$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.
 
@@ -11062,7 +6955,7 @@
 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 $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.
 
@@ -11088,7 +6981,7 @@
 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)
+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)
 
@@ -11108,7 +7001,7 @@
     let domainName = domainName_example; // String
     let relationshipTypeName = NRCELLDU_USES_NRSECTORCARRIER; // String
     let targetFilter = /attributes(nCI,nRPCI); // String
-    let scopeFilter = /attributes[@nRTAC=310"]; // String
+    let scopeFilter = /attributes[@nRTAC=310]; // String
     let offset = 56; // Integer
     let limit = 56; // Integer
 
@@ -11742,7 +7635,7 @@
                           <div class="tab-pane active" id="examples-EntitiesAndRelationships-getTopologyByEntityTypeName-0-curl">
                             <pre class="prettyprint"><code class="language-bsh">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"
+ "https://localhost/topology-inventory/v1alpha11/domains/{domainName}/entity-types/{entityTypeName}/entities?targetFilter=/attributes(nCI,nRPCI)&scopeFilter=/attributes[@nRTAC=310]&offset=56&limit=56"
 </code></pre>
                           </div>
                           <div class="tab-pane" id="examples-EntitiesAndRelationships-getTopologyByEntityTypeName-0-java">
@@ -11763,7 +7656,7 @@
         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.
+        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.
 
@@ -11812,7 +7705,7 @@
         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.
+        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.
 
@@ -11839,7 +7732,7 @@
 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)
+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)
 
@@ -11863,16 +7756,16 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getTopologyByEntityTypeName-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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.
+  '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.
 };
@@ -11911,7 +7804,7 @@
             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 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)
 
@@ -11938,7 +7831,7 @@
 $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.
+$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.
 
@@ -11962,7 +7855,7 @@
 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 $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.
 
@@ -11988,7 +7881,7 @@
 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)
+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)
 
@@ -12008,7 +7901,7 @@
     let domainName = domainName_example; // String
     let entityTypeName = entityTypeName_example; // String
     let targetFilter = /attributes(nCI,nRPCI); // String
-    let scopeFilter = /attributes[@nRTAC=310"]; // String
+    let scopeFilter = /attributes[@nRTAC=310]; // String
     let offset = 56; // Integer
     let limit = 56; // Integer
 
@@ -12659,7 +8552,7 @@
 
         // 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 | 
@@ -12702,7 +8595,7 @@
 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 | 
@@ -12726,7 +8619,7 @@
 
 // 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)
@@ -12748,11 +8641,11 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getTopologyById-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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} 
@@ -12787,7 +8680,7 @@
 
             // 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)
@@ -12811,7 +8704,7 @@
 
 // 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 | 
@@ -12832,7 +8725,7 @@
 
 # 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 | 
@@ -12855,7 +8748,7 @@
 
 # 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)
@@ -12872,7 +8765,7 @@
                               <pre class="prettyprint"><code class="language-rust">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
@@ -13628,10 +9521,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getTopologyEntityTypes-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 = {
@@ -14435,10 +10328,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-EntitiesAndRelationships-getTopologyRelationshipTypes-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">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 = {
@@ -15101,955 +10994,6 @@
                       </div>
                       <hr>
                   </section>
-                <section id="api-GeoQuery">
-                  <h1>GeoQuery</h1>
-                    <div id="api-GeoQuery-geoQueryTopologyAcrossDomains">
-                      <article id="api-GeoQuery-geoQueryTopologyAcrossDomains-0" data-group="User" data-name="geoQueryTopologyAcrossDomains" data-version="0">
-                        <div class="pull-left">
-                          <h1>geoQueryTopologyAcrossDomains</h1>
-                          <p>Geo query topology entity or entities  across topology domains.</p>
-                        </div>
-                        <div class="pull-right"></div>
-                        <div class="clearfix"></div>
-                        <p></p>
-                        <p class="marked">Geo query topology entity or entities across topology domains.</p>
-                        <p></p>
-                        <br />
-                        <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/geo-queries</span></code></pre>
-                        <p>
-                          <h3>Usage and SDK Samples</h3>
-                        </p>
-                        <ul class="nav nav-tabs nav-tabs-examples">
-                          <li class="active"><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-curl">Curl</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-java">Java</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-dart">Dart</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-android">Android</a></li>
-                          <!--<li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-groovy">Groovy</a></li>-->
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-objc">Obj-C</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-javascript">JavaScript</a></li>
-                          <!--<li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-angular">Angular</a></li>-->
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-csharp">C#</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-php">PHP</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-perl">Perl</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-python">Python</a></li>
-                          <li class=""><a href="#examples-GeoQuery-geoQueryTopologyAcrossDomains-0-rust">Rust</a></li>
-                        </ul>
-
-                        <div class="tab-content">
-                          <div class="tab-pane active" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-curl">
-                            <pre class="prettyprint"><code class="language-bsh">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" \
- -d '{
-  &quot;query&quot; : &quot;query&quot;
-}'
-</code></pre>
-                          </div>
-                          <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-java">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
-import org.openapitools.client.auth.*;
-import org.openapitools.client.model.*;
-import org.openapitools.client.api.GeoQueryApi;
-
-import java.io.File;
-import java.util.*;
-
-public class GeoQueryApiExample {
-    public static void main(String[] args) {
-
-        // Create an instance of the API class
-        GeoQueryApi apiInstance = new GeoQueryApi();
-        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.
-
-        try {
-            Object result = apiInstance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling GeoQueryApi#geoQueryTopologyAcrossDomains");
-            e.printStackTrace();
-        }
-    }
-}
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-dart">
-                            <pre class="prettyprint"><code class="language-dart">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.
-
-try {
-    final result = await api_instance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
-    print(result);
-} catch (e) {
-    print('Exception when calling DefaultApi->geoQueryTopologyAcrossDomains: $e\n');
-}
-
-</code></pre>
-                          </div>
-
-                          <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-android">
-                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.GeoQueryApi;
-
-public class GeoQueryApiExample {
-    public static void main(String[] args) {
-        GeoQueryApi apiInstance = new GeoQueryApi();
-        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.
-
-        try {
-            Object result = apiInstance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
-            System.out.println(result);
-        } catch (ApiException e) {
-            System.err.println("Exception when calling GeoQueryApi#geoQueryTopologyAcrossDomains");
-            e.printStackTrace();
-        }
-    }
-}</code></pre>
-                          </div>
-  <!--
-  <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-groovy">
-  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-  </div> -->
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-objc">
-                              <pre class="prettyprint"><code class="language-cpp">
-
-// Create an instance of the API class
-GeoQueryApi *apiInstance = [[GeoQueryApi 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)
-
-// Geo query topology entity or entities  across topology domains.
-[apiInstance geoQueryTopologyAcrossDomainsWith:accept
-    contentType:contentType
-    queryMessage:queryMessage
-    offset:offset
-    limit:limit
-              completionHandler: ^(Object output, NSError* error) {
-    if (output) {
-        NSLog(@"%@", output);
-    }
-    if (error) {
-        NSLog(@"Error: %@", error);
-    }
-}];
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
-
-// Create an instance of the API class
-var api = new TopologyAndInventoryApi.GeoQueryApi()
-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 callback = function(error, data, response) {
-  if (error) {
-    console.error(error);
-  } else {
-    console.log('API called successfully. Returned data: ' + data);
-  }
-};
-api.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, opts, callback);
-</code></pre>
-                            </div>
-
-                            <!--<div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-angular">
-              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
-            </div>-->
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-csharp">
-                              <pre class="prettyprint"><code class="language-cs">using System;
-using System.Diagnostics;
-using Org.OpenAPITools.Api;
-using Org.OpenAPITools.Client;
-using Org.OpenAPITools.Model;
-
-namespace Example
-{
-    public class geoQueryTopologyAcrossDomainsExample
-    {
-        public void main()
-        {
-
-            // Create an instance of the API class
-            var apiInstance = new GeoQueryApi();
-            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)
-
-            try {
-                // Geo query topology entity or entities  across topology domains.
-                Object result = apiInstance.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit);
-                Debug.WriteLine(result);
-            } catch (Exception e) {
-                Debug.Print("Exception when calling GeoQueryApi.geoQueryTopologyAcrossDomains: " + e.Message );
-            }
-        }
-    }
-}
-</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-php">
-                              <pre class="prettyprint"><code class="language-php"><&#63;php
-require_once(__DIR__ . '/vendor/autoload.php');
-
-// Create an instance of the API class
-$api_instance = new OpenAPITools\Client\Api\GeoQueryApi();
-$accept = application/json; // String | 
-$contentType = application/json; // String | 
-$queryMessage = ; // QueryMessage | 
-$offset = 56; // Integer | Pagination offset.
-$limit = 56; // Integer | Result limiter.
-
-try {
-    $result = $api_instance->geoQueryTopologyAcrossDomains($accept, $contentType, $queryMessage, $offset, $limit);
-    print_r($result);
-} catch (Exception $e) {
-    echo 'Exception when calling GeoQueryApi->geoQueryTopologyAcrossDomains: ', $e->getMessage(), PHP_EOL;
-}
-?></code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-perl">
-                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
-use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::GeoQueryApi;
-
-# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::GeoQueryApi->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.
-
-eval {
-    my $result = $api_instance->geoQueryTopologyAcrossDomains(accept => $accept, contentType => $contentType, queryMessage => $queryMessage, offset => $offset, limit => $limit);
-    print Dumper($result);
-};
-if ($@) {
-    warn "Exception when calling GeoQueryApi->geoQueryTopologyAcrossDomains: $@\n";
-}</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-python">
-                              <pre class="prettyprint"><code class="language-python">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.GeoQueryApi()
-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)
-
-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)
-    pprint(api_response)
-except ApiException as e:
-    print("Exception when calling GeoQueryApi->geoQueryTopologyAcrossDomains: %s\n" % e)</code></pre>
-                            </div>
-
-                            <div class="tab-pane" id="examples-GeoQuery-geoQueryTopologyAcrossDomains-0-rust">
-                              <pre class="prettyprint"><code class="language-rust">extern crate GeoQueryApi;
-
-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 mut context = GeoQueryApi::Context::default();
-    let result = client.geoQueryTopologyAcrossDomains(accept, contentType, queryMessage, offset, limit, &context).wait();
-
-    println!("{:?}", result);
-}
-</code></pre>
-                            </div>
-                          </div>
-
-                          <h2>Scopes</h2>
-                          <table>
-                            
-                          </table>
-
-                          <h2>Parameters</h2>
-
-
-                            <div class="methodsubtabletitle">Header parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                  <tr><td style="width:150px;">Accept*</td>
-<td>
-
-
-    <div id="d2e199_geoQueryTopologyAcrossDomains_accept">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                                  <tr><td style="width:150px;">Content-Type*</td>
-<td>
-
-
-    <div id="d2e199_geoQueryTopologyAcrossDomains_contentType">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    String
-                </span>
-
-            </div>
-                <div class="inner required">
-                    Required
-                </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                            <div class="methodsubtabletitle">Body parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                <tr><td style="width:150px;">queryMessage <span style="color:red;">*</span></td>
-<td>
-<p class="marked"></p>
-<script>
-$(document).ready(function() {
-  var schemaWrapper = {
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/QueryMessage"
-      },
-      "examples" : {
-        "geoQuery" : {
-          "$ref" : "#/components/examples/QueryMessageExample"
-        }
-      }
-    }
-  },
-  "required" : true
-};
-
-  var schema = findNode('schema',schemaWrapper).schema;
-  if (!schema) {
-    schema = schemaWrapper.schema;
-  }
-  if (schema.$ref != null) {
-    schema = defsParser.$refs.get(schema.$ref);
-  } else if (schema.items != null && schema.items.$ref != null) {
-    schema.items = defsParser.$refs.get(schema.items.$ref);
-  } else {
-    schemaWrapper.definitions = Object.assign({}, defs);
-    $RefParser.dereference(schemaWrapper).catch(function(err) {
-      console.log(err);
-    });
-  }
-
-  var view = new JSONSchemaView(schema,2,{isBodyParam: true});
-  var result = $('#d2e199_geoQueryTopologyAcrossDomains_queryMessage');
-  result.empty();
-  result.append(view.render());
-});
-</script>
-<div id="d2e199_geoQueryTopologyAcrossDomains_queryMessage"></div>
-</td>
-</tr>
-
-                            </table>
-
-
-                            <div class="methodsubtabletitle">Query parameters</div>
-                            <table id="methodsubtable">
-                              <tr>
-                                <th width="150px">Name</th>
-                                <th>Description</th>
-                              </tr>
-                                <tr><td style="width:150px;">offset</td>
-<td>
-
-
-    <div id="d2e199_geoQueryTopologyAcrossDomains_offset">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    Integer
-                </span>
-
-                    <div class="inner description marked">
-Pagination offset.
-                    </div>
-            </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                                <tr><td style="width:150px;">limit</td>
-<td>
-
-
-    <div id="d2e199_geoQueryTopologyAcrossDomains_limit">
-        <div class="json-schema-view">
-            <div class="primitive">
-                <span class="type">
-                    Integer
-                </span>
-
-                    <div class="inner description marked">
-Result limiter.
-                    </div>
-            </div>
-        </div>
-    </div>
-</td>
-</tr>
-
-                            </table>
-
-                          <h2>Responses</h2>
-                            <h3 id="examples-GeoQuery-geoQueryTopologyAcrossDomains-title-200"></h3>
-                            <p id="examples-GeoQuery-geoQueryTopologyAcrossDomains-description-200" class="marked"></p>
-                            <script>
-                              var responseGeoQuery200_description = `OK`;
-                              var responseGeoQuery200_description_break = responseGeoQuery200_description.indexOf('\n');
-                              if (responseGeoQuery200_description_break == -1) {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-200").text("Status: 200 - " + responseGeoQuery200_description);
-                              } else {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-200").text("Status: 200 - " + responseGeoQuery200_description.substring(0, responseGeoQuery200_description_break));
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-description-200").html(responseGeoQuery200_description.substring(responseGeoQuery200_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-GeoQuery-geoQueryTopologyAcrossDomains-200" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-GeoQuery-geoQueryTopologyAcrossDomains-200-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-200-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-200-schema">
-                                <div id="responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-200" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "OK",
-  "content" : {
-    "application/json" : {
-      "schema" : {
-        "type" : "object"
-      },
-      "examples" : {
-        "geoQueryResponse" : {
-          "$ref" : "#/components/examples/QueryResponseExample"
-        }
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-200-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-200');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-GeoQuery-geoQueryTopologyAcrossDomains-200-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-GeoQuery-geoQueryTopologyAcrossDomains-title-400"></h3>
-                            <p id="examples-GeoQuery-geoQueryTopologyAcrossDomains-description-400" class="marked"></p>
-                            <script>
-                              var responseGeoQuery400_description = `Bad Request`;
-                              var responseGeoQuery400_description_break = responseGeoQuery400_description.indexOf('\n');
-                              if (responseGeoQuery400_description_break == -1) {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-400").text("Status: 400 - " + responseGeoQuery400_description);
-                              } else {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-400").text("Status: 400 - " + responseGeoQuery400_description.substring(0, responseGeoQuery400_description_break));
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-description-400").html(responseGeoQuery400_description.substring(responseGeoQuery400_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-GeoQuery-geoQueryTopologyAcrossDomains-400" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-GeoQuery-geoQueryTopologyAcrossDomains-400-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-400-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-400-schema">
-                                <div id="responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-400" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Bad Request",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "400",
-        "title" : "Bad Request",
-        "details" : "The provided request is not valid"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-400-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-400');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-GeoQuery-geoQueryTopologyAcrossDomains-400-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-GeoQuery-geoQueryTopologyAcrossDomains-title-401"></h3>
-                            <p id="examples-GeoQuery-geoQueryTopologyAcrossDomains-description-401" class="marked"></p>
-                            <script>
-                              var responseGeoQuery401_description = `Unauthorized`;
-                              var responseGeoQuery401_description_break = responseGeoQuery401_description.indexOf('\n');
-                              if (responseGeoQuery401_description_break == -1) {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-401").text("Status: 401 - " + responseGeoQuery401_description);
-                              } else {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-401").text("Status: 401 - " + responseGeoQuery401_description.substring(0, responseGeoQuery401_description_break));
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-description-401").html(responseGeoQuery401_description.substring(responseGeoQuery401_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-GeoQuery-geoQueryTopologyAcrossDomains-401" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-GeoQuery-geoQueryTopologyAcrossDomains-401-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-401-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-401-schema">
-                                <div id="responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-401" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Unauthorized",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "401",
-        "title" : "Unauthorized request",
-        "details" : "This request is unauthorized"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-401-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-401');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-GeoQuery-geoQueryTopologyAcrossDomains-401-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-GeoQuery-geoQueryTopologyAcrossDomains-title-403"></h3>
-                            <p id="examples-GeoQuery-geoQueryTopologyAcrossDomains-description-403" class="marked"></p>
-                            <script>
-                              var responseGeoQuery403_description = `Forbidden`;
-                              var responseGeoQuery403_description_break = responseGeoQuery403_description.indexOf('\n');
-                              if (responseGeoQuery403_description_break == -1) {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-403").text("Status: 403 - " + responseGeoQuery403_description);
-                              } else {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-403").text("Status: 403 - " + responseGeoQuery403_description.substring(0, responseGeoQuery403_description_break));
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-description-403").html(responseGeoQuery403_description.substring(responseGeoQuery403_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-GeoQuery-geoQueryTopologyAcrossDomains-403" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-GeoQuery-geoQueryTopologyAcrossDomains-403-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-403-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-403-schema">
-                                <div id="responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-403" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Forbidden",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "403",
-        "title" : "Request Forbidden",
-        "details" : "This request is forbidden"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-403-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-403');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-GeoQuery-geoQueryTopologyAcrossDomains-403-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-GeoQuery-geoQueryTopologyAcrossDomains-title-409"></h3>
-                            <p id="examples-GeoQuery-geoQueryTopologyAcrossDomains-description-409" class="marked"></p>
-                            <script>
-                              var responseGeoQuery409_description = `Conflict`;
-                              var responseGeoQuery409_description_break = responseGeoQuery409_description.indexOf('\n');
-                              if (responseGeoQuery409_description_break == -1) {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-409").text("Status: 409 - " + responseGeoQuery409_description);
-                              } else {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-409").text("Status: 409 - " + responseGeoQuery409_description.substring(0, responseGeoQuery409_description_break));
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-description-409").html(responseGeoQuery409_description.substring(responseGeoQuery409_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-GeoQuery-geoQueryTopologyAcrossDomains-409" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-GeoQuery-geoQueryTopologyAcrossDomains-409-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-409-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-409-schema">
-                                <div id="responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-409" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Conflict",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "409'",
-        "title" : "Conflicting request",
-        "details" : "The request cannot be processed as the resource is in use."
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-409-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-409');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-GeoQuery-geoQueryTopologyAcrossDomains-409-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                            <h3 id="examples-GeoQuery-geoQueryTopologyAcrossDomains-title-500"></h3>
-                            <p id="examples-GeoQuery-geoQueryTopologyAcrossDomains-description-500" class="marked"></p>
-                            <script>
-                              var responseGeoQuery500_description = `Internal Server Error`;
-                              var responseGeoQuery500_description_break = responseGeoQuery500_description.indexOf('\n');
-                              if (responseGeoQuery500_description_break == -1) {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-500").text("Status: 500 - " + responseGeoQuery500_description);
-                              } else {
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-title-500").text("Status: 500 - " + responseGeoQuery500_description.substring(0, responseGeoQuery500_description_break));
-                                $("#examples-GeoQuery-geoQueryTopologyAcrossDomains-description-500").html(responseGeoQuery500_description.substring(responseGeoQuery500_description_break));
-                              }
-                            </script>
-
-
-                            <ul id="responses-detail-GeoQuery-geoQueryTopologyAcrossDomains-500" class="nav nav-tabs nav-tabs-examples" >
-                                <li class="active">
-                                  <a data-toggle="tab" href="#responses-GeoQuery-geoQueryTopologyAcrossDomains-500-schema">Schema</a>
-                                </li>
-
-
-
-
-                            </ul>
-
-
-                            <div class="tab-content" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-500-wrapper" style='margin-bottom: 10px;'>
-                              <div class="tab-pane active" id="responses-GeoQuery-geoQueryTopologyAcrossDomains-500-schema">
-                                <div id="responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-500" class="exampleStyle">
-                                  <script>
-                                    $(document).ready(function() {
-                                      var schemaWrapper = {
-  "description" : "Internal Server Error",
-  "content" : {
-    "application/problem+json" : {
-      "schema" : {
-        "$ref" : "#/components/schemas/ErrorMessage"
-      },
-      "example" : {
-        "status" : "500",
-        "title" : "Internal Server Error",
-        "details" : "Internal Server Error occurred"
-      }
-    }
-  }
-};
-                                      var schema = findNode('schema',schemaWrapper).schema;
-                                      if (!schema) {
-                                        schema = schemaWrapper.schema;
-                                      }
-                                      if (schema == null) {
-                                        return;
-                                      }
-                                      if (schema.$ref != null) {
-                                        schema = defsParser.$refs.get(schema.$ref);
-                                        if (schema.properties != null) {
-                                          Object.keys(schema.properties).forEach( (item) => {
-                                            if (schema.properties[item].$ref != null) {
-                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                            }
-                                          });
-                                        }
-                                      } else if (schema.items != null && schema.items.$ref != null) {
-                                        schema.items = defsParser.$refs.get(schema.items.$ref);
-                                      } else {
-                                        schemaWrapper.definitions = Object.assign({}, defs);
-                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
-                                          console.log(err);
-                                        });
-                                      }
-
-                                      var view = new JSONSchemaView(schema, 3);
-                                      $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-500-schema-data').val(JSON.stringify(schema));
-                                      var result = $('#responses-GeoQuery-geoQueryTopologyAcrossDomains-schema-500');
-                                      result.empty();
-                                      result.append(view.render());
-                                    });
-                                  </script>
-                                </div>
-                                <input id='responses-GeoQuery-geoQueryTopologyAcrossDomains-500-schema-data' type='hidden' value=''></input>
-                              </div>
-                            </div>
-                        </article>
-                      </div>
-                      <hr>
-                  </section>
                 <section id="api-Schemas">
                   <h1>Schemas</h1>
                     <div id="api-Schemas-createSchema">
@@ -16061,7 +11005,7 @@
                         <div class="pull-right"></div>
                         <div class="clearfix"></div>
                         <p></p>
-                        <p class="marked">Create a new schema.</p>
+                        <p class="marked">Create a new schema. The request body shall contain the schema in YANG format.</p>
                         <p></p>
                         <br />
                         <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/schemas</span></code></pre>
@@ -16107,7 +11051,7 @@
         // Create an instance of the API class
         SchemasApi apiInstance = new SchemasApi();
         String accept = application/json; // String | 
-        String contentType = application/json; // String | 
+        String contentType = multipart/form-data; // String | 
         File file = BINARY_DATA_HERE; // File | multipartFile
 
         try {
@@ -16147,7 +11091,7 @@
     public static void main(String[] args) {
         SchemasApi apiInstance = new SchemasApi();
         String accept = application/json; // String | 
-        String contentType = application/json; // String | 
+        String contentType = multipart/form-data; // String | 
         File file = BINARY_DATA_HERE; // File | multipartFile
 
         try {
@@ -16169,7 +11113,7 @@
 // Create an instance of the API class
 SchemasApi *apiInstance = [[SchemasApi alloc] init];
 String *accept = application/json; //  (default to application/json)
-String *contentType = application/json; //  (default to application/json)
+String *contentType = multipart/form-data; //  (default to multipart/form-data)
 File *file = BINARY_DATA_HERE; // multipartFile (default to null)
 
 // Create a new schema.
@@ -16185,12 +11129,12 @@
                             </div>
 
                             <div class="tab-pane" id="examples-Schemas-createSchema-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
 
 // Create an instance of the API class
-var api = new TopologyAndInventoryApi.SchemasApi()
+var api = new TopologyExposureAndInventoryApi.SchemasApi()
 var accept = application/json; // {String} 
-var contentType = application/json; // {String} 
+var contentType = multipart/form-data; // {String} 
 var file = BINARY_DATA_HERE; // {File} multipartFile
 
 var callback = function(error, data, response) {
@@ -16224,7 +11168,7 @@
             // Create an instance of the API class
             var apiInstance = new SchemasApi();
             var accept = application/json;  // String |  (default to application/json)
-            var contentType = application/json;  // String |  (default to application/json)
+            var contentType = multipart/form-data;  // String |  (default to multipart/form-data)
             var file = BINARY_DATA_HERE;  // File | multipartFile (default to null)
 
             try {
@@ -16246,7 +11190,7 @@
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\SchemasApi();
 $accept = application/json; // String | 
-$contentType = application/json; // String | 
+$contentType = multipart/form-data; // String | 
 $file = BINARY_DATA_HERE; // File | multipartFile
 
 try {
@@ -16265,7 +11209,7 @@
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::SchemasApi->new();
 my $accept = application/json; # String | 
-my $contentType = application/json; # String | 
+my $contentType = multipart/form-data; # String | 
 my $file = BINARY_DATA_HERE; # File | multipartFile
 
 eval {
@@ -16286,7 +11230,7 @@
 # Create an instance of the API class
 api_instance = openapi_client.SchemasApi()
 accept = application/json # String |  (default to application/json)
-contentType = application/json # String |  (default to application/json)
+contentType = multipart/form-data # String |  (default to multipart/form-data)
 file = BINARY_DATA_HERE # File | multipartFile (default to null)
 
 try:
@@ -16301,7 +11245,7 @@
 
 pub fn main() {
     let accept = application/json; // String
-    let contentType = application/json; // String
+    let contentType = multipart/form-data; // String
     let file = BINARY_DATA_HERE; // File
 
     let mut context = SchemasApi::Context::default();
@@ -16751,7 +11695,7 @@
         "$ref" : "#/components/schemas/ErrorMessage"
       },
       "example" : {
-        "status" : "409'",
+        "status" : "409",
         "title" : "Conflicting request",
         "details" : "The request cannot be processed as the resource is in use."
       }
@@ -17005,10 +11949,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-Schemas-deleteSchema-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
 
 // Create an instance of the API class
-var api = new TopologyAndInventoryApi.SchemasApi()
+var api = new TopologyExposureAndInventoryApi.SchemasApi()
 var accept = application/json; // {String} 
 var schemaName = schemaName_example; // {String} 
 
@@ -17718,10 +12662,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-Schemas-getSchemaByName-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
 
 // Create an instance of the API class
-var api = new TopologyAndInventoryApi.SchemasApi()
+var api = new TopologyExposureAndInventoryApi.SchemasApi()
 var accept = application/json; // {String} 
 var schemaName = schemaName_example; // {String} 
 
@@ -18542,10 +13486,10 @@
                             </div>
 
                             <div class="tab-pane" id="examples-Schemas-getSchemas-0-javascript">
-                              <pre class="prettyprint"><code class="language-js">var TopologyAndInventoryApi = require('topology_and_inventory_api');
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
 
 // Create an instance of the API class
-var api = new TopologyAndInventoryApi.SchemasApi()
+var api = new TopologyExposureAndInventoryApi.SchemasApi()
 var accept = application/json; // {String} 
 var opts = {
   'domain': ran, // {String} 
@@ -19195,6 +14139,4218 @@
                       </div>
                       <hr>
                   </section>
+                <section id="api-TopologyGroups">
+                  <h1>TopologyGroups</h1>
+                    <div id="api-TopologyGroups-createGroup">
+                      <article id="api-TopologyGroups-createGroup-0" data-group="User" data-name="createGroup" data-version="0">
+                        <div class="pull-left">
+                          <h1>createGroup</h1>
+                          <p>Create group.</p>
+                        </div>
+                        <div class="pull-right"></div>
+                        <div class="clearfix"></div>
+                        <p></p>
+                        <p class="marked">Create group.</p>
+                        <p></p>
+                        <br />
+                        <pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/groups</span></code></pre>
+                        <p>
+                          <h3>Usage and SDK Samples</h3>
+                        </p>
+                        <ul class="nav nav-tabs nav-tabs-examples">
+                          <li class="active"><a href="#examples-TopologyGroups-createGroup-0-curl">Curl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-java">Java</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-dart">Dart</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-android">Android</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-createGroup-0-groovy">Groovy</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-objc">Obj-C</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-javascript">JavaScript</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-createGroup-0-angular">Angular</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-csharp">C#</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-php">PHP</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-perl">Perl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-python">Python</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-createGroup-0-rust">Rust</a></li>
+                        </ul>
+
+                        <div class="tab-content">
+                          <div class="tab-pane active" id="examples-TopologyGroups-createGroup-0-curl">
+                            <pre class="prettyprint"><code class="language-bsh">curl -X POST \
+ -H "Accept: application/json,application/problem+json" \
+ -H "Content-Type: application/json" \
+ "https://localhost/topology-inventory/v1alpha11/groups" \
+ -d '{
+  &quot;groupName&quot; : &quot;groupName&quot;,
+  &quot;criteria&quot; : {
+    &quot;resourceInstances&quot; : [ &quot;resourceInstances&quot;, &quot;resourceInstances&quot; ]
+  }
+}'
+</code></pre>
+                          </div>
+                          <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-java">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.TopologyGroupsApi;
+
+import java.io.File;
+import java.util.*;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String contentType = application/json; // String | 
+        Group group = ; // Group | 
+
+        try {
+            GroupResponse result = apiInstance.createGroup(accept, contentType, group);
+            System.out.println(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#createGroup");
+            e.printStackTrace();
+        }
+    }
+}
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-dart">
+                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String accept = new String(); // String | 
+final String contentType = new String(); // String | 
+final Group group = new Group(); // Group | 
+
+try {
+    final result = await api_instance.createGroup(accept, contentType, group);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->createGroup: $e\n');
+}
+
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-android">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.TopologyGroupsApi;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String contentType = application/json; // String | 
+        Group group = ; // Group | 
+
+        try {
+            GroupResponse result = apiInstance.createGroup(accept, contentType, group);
+            System.out.println(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#createGroup");
+            e.printStackTrace();
+        }
+    }
+}</code></pre>
+                          </div>
+  <!--
+  <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-groovy">
+  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+  </div> -->
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-objc">
+                              <pre class="prettyprint"><code class="language-cpp">
+
+// Create an instance of the API class
+TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
+String *accept = application/json; //  (default to application/json)
+String *contentType = application/json; //  (default to application/json)
+Group *group = ; // 
+
+// Create group.
+[apiInstance createGroupWith:accept
+    contentType:contentType
+    group:group
+              completionHandler: ^(GroupResponse output, NSError* error) {
+    if (output) {
+        NSLog(@"%@", output);
+    }
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-javascript">
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
+
+// Create an instance of the API class
+var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
+var accept = application/json; // {String} 
+var contentType = application/json; // {String} 
+var group = ; // {Group} 
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+api.createGroup(accept, contentType, group, callback);
+</code></pre>
+                            </div>
+
+                            <!--<div class="tab-pane" id="examples-TopologyGroups-createGroup-0-angular">
+              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+            </div>-->
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-csharp">
+                              <pre class="prettyprint"><code class="language-cs">using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class createGroupExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new TopologyGroupsApi();
+            var accept = application/json;  // String |  (default to application/json)
+            var contentType = application/json;  // String |  (default to application/json)
+            var group = new Group(); // Group | 
+
+            try {
+                // Create group.
+                GroupResponse result = apiInstance.createGroup(accept, contentType, group);
+                Debug.WriteLine(result);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling TopologyGroupsApi.createGroup: " + e.Message );
+            }
+        }
+    }
+}
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-php">
+                              <pre class="prettyprint"><code class="language-php"><&#63;php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
+$accept = application/json; // String | 
+$contentType = application/json; // String | 
+$group = ; // Group | 
+
+try {
+    $result = $api_instance->createGroup($accept, $contentType, $group);
+    print_r($result);
+} catch (Exception $e) {
+    echo 'Exception when calling TopologyGroupsApi->createGroup: ', $e->getMessage(), PHP_EOL;
+}
+?></code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-perl">
+                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::TopologyGroupsApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
+my $accept = application/json; # String | 
+my $contentType = application/json; # String | 
+my $group = WWW::OPenAPIClient::Object::Group->new(); # Group | 
+
+eval {
+    my $result = $api_instance->createGroup(accept => $accept, contentType => $contentType, group => $group);
+    print Dumper($result);
+};
+if ($@) {
+    warn "Exception when calling TopologyGroupsApi->createGroup: $@\n";
+}</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-python">
+                              <pre class="prettyprint"><code class="language-python">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.TopologyGroupsApi()
+accept = application/json # String |  (default to application/json)
+contentType = application/json # String |  (default to application/json)
+group =  # Group | 
+
+try:
+    # Create group.
+    api_response = api_instance.create_group(accept, contentType, group)
+    pprint(api_response)
+except ApiException as e:
+    print("Exception when calling TopologyGroupsApi->createGroup: %s\n" % e)</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-createGroup-0-rust">
+                              <pre class="prettyprint"><code class="language-rust">extern crate TopologyGroupsApi;
+
+pub fn main() {
+    let accept = application/json; // String
+    let contentType = application/json; // String
+    let group = ; // Group
+
+    let mut context = TopologyGroupsApi::Context::default();
+    let result = client.createGroup(accept, contentType, group, &context).wait();
+
+    println!("{:?}", result);
+}
+</code></pre>
+                            </div>
+                          </div>
+
+                          <h2>Scopes</h2>
+                          <table>
+                            
+                          </table>
+
+                          <h2>Parameters</h2>
+
+
+                            <div class="methodsubtabletitle">Header parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                  <tr><td style="width:150px;">Accept*</td>
+<td>
+
+
+    <div id="d2e199_createGroup_accept">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                                  <tr><td style="width:150px;">Content-Type*</td>
+<td>
+
+
+    <div id="d2e199_createGroup_contentType">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+                            <div class="methodsubtabletitle">Body parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                <tr><td style="width:150px;">group <span style="color:red;">*</span></td>
+<td>
+<p class="marked"></p>
+<script>
+$(document).ready(function() {
+  var schemaWrapper = {
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Group"
+      },
+      "examples" : {
+        "dynamicGroup" : {
+          "$ref" : "#/components/examples/DynamicGroupExample"
+        },
+        "staticGroup" : {
+          "$ref" : "#/components/examples/StaticGroupExample"
+        }
+      }
+    }
+  },
+  "required" : true
+};
+
+  var schema = findNode('schema',schemaWrapper).schema;
+  if (!schema) {
+    schema = schemaWrapper.schema;
+  }
+  if (schema.$ref != null) {
+    schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
+  } else {
+    schemaWrapper.definitions = Object.assign({}, defs);
+    $RefParser.dereference(schemaWrapper).catch(function(err) {
+      console.log(err);
+    });
+  }
+
+  var view = new JSONSchemaView(schema,2,{isBodyParam: true});
+  var result = $('#d2e199_createGroup_group');
+  result.empty();
+  result.append(view.render());
+});
+</script>
+<div id="d2e199_createGroup_group"></div>
+</td>
+</tr>
+
+                            </table>
+
+
+
+                          <h2>Responses</h2>
+                            <h3 id="examples-TopologyGroups-createGroup-title-201"></h3>
+                            <p id="examples-TopologyGroups-createGroup-description-201" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups201_description = `Created`;
+                              var responseTopologyGroups201_description_break = responseTopologyGroups201_description.indexOf('\n');
+                              if (responseTopologyGroups201_description_break == -1) {
+                                $("#examples-TopologyGroups-createGroup-title-201").text("Status: 201 - " + responseTopologyGroups201_description);
+                              } else {
+                                $("#examples-TopologyGroups-createGroup-title-201").text("Status: 201 - " + responseTopologyGroups201_description.substring(0, responseTopologyGroups201_description_break));
+                                $("#examples-TopologyGroups-createGroup-description-201").html(responseTopologyGroups201_description.substring(responseTopologyGroups201_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-createGroup-201" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-createGroup-201-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-createGroup-201-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-createGroup-201-schema">
+                                <div id="responses-TopologyGroups-createGroup-schema-201" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Created",
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/GroupResponse"
+      },
+      "examples" : {
+        "group" : {
+          "$ref" : "#/components/examples/GroupResponseExample"
+        }
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-createGroup-201-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-createGroup-schema-201');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-createGroup-201-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-createGroup-title-400"></h3>
+                            <p id="examples-TopologyGroups-createGroup-description-400" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups400_description = `Bad Request`;
+                              var responseTopologyGroups400_description_break = responseTopologyGroups400_description.indexOf('\n');
+                              if (responseTopologyGroups400_description_break == -1) {
+                                $("#examples-TopologyGroups-createGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description);
+                              } else {
+                                $("#examples-TopologyGroups-createGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description.substring(0, responseTopologyGroups400_description_break));
+                                $("#examples-TopologyGroups-createGroup-description-400").html(responseTopologyGroups400_description.substring(responseTopologyGroups400_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-createGroup-400" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-createGroup-400-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-createGroup-400-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-createGroup-400-schema">
+                                <div id="responses-TopologyGroups-createGroup-schema-400" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Bad Request",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "400",
+        "title" : "Bad Request",
+        "details" : "The provided request is not valid"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-createGroup-400-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-createGroup-schema-400');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-createGroup-400-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-createGroup-title-401"></h3>
+                            <p id="examples-TopologyGroups-createGroup-description-401" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups401_description = `Unauthorized`;
+                              var responseTopologyGroups401_description_break = responseTopologyGroups401_description.indexOf('\n');
+                              if (responseTopologyGroups401_description_break == -1) {
+                                $("#examples-TopologyGroups-createGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description);
+                              } else {
+                                $("#examples-TopologyGroups-createGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description.substring(0, responseTopologyGroups401_description_break));
+                                $("#examples-TopologyGroups-createGroup-description-401").html(responseTopologyGroups401_description.substring(responseTopologyGroups401_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-createGroup-401" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-createGroup-401-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-createGroup-401-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-createGroup-401-schema">
+                                <div id="responses-TopologyGroups-createGroup-schema-401" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Unauthorized",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "401",
+        "title" : "Unauthorized request",
+        "details" : "This request is unauthorized"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-createGroup-401-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-createGroup-schema-401');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-createGroup-401-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-createGroup-title-403"></h3>
+                            <p id="examples-TopologyGroups-createGroup-description-403" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups403_description = `Forbidden`;
+                              var responseTopologyGroups403_description_break = responseTopologyGroups403_description.indexOf('\n');
+                              if (responseTopologyGroups403_description_break == -1) {
+                                $("#examples-TopologyGroups-createGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description);
+                              } else {
+                                $("#examples-TopologyGroups-createGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description.substring(0, responseTopologyGroups403_description_break));
+                                $("#examples-TopologyGroups-createGroup-description-403").html(responseTopologyGroups403_description.substring(responseTopologyGroups403_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-createGroup-403" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-createGroup-403-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-createGroup-403-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-createGroup-403-schema">
+                                <div id="responses-TopologyGroups-createGroup-schema-403" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Forbidden",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "403",
+        "title" : "Request Forbidden",
+        "details" : "This request is forbidden"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-createGroup-403-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-createGroup-schema-403');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-createGroup-403-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-createGroup-title-409"></h3>
+                            <p id="examples-TopologyGroups-createGroup-description-409" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups409_description = `Conflict`;
+                              var responseTopologyGroups409_description_break = responseTopologyGroups409_description.indexOf('\n');
+                              if (responseTopologyGroups409_description_break == -1) {
+                                $("#examples-TopologyGroups-createGroup-title-409").text("Status: 409 - " + responseTopologyGroups409_description);
+                              } else {
+                                $("#examples-TopologyGroups-createGroup-title-409").text("Status: 409 - " + responseTopologyGroups409_description.substring(0, responseTopologyGroups409_description_break));
+                                $("#examples-TopologyGroups-createGroup-description-409").html(responseTopologyGroups409_description.substring(responseTopologyGroups409_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-createGroup-409" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-createGroup-409-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-createGroup-409-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-createGroup-409-schema">
+                                <div id="responses-TopologyGroups-createGroup-schema-409" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Conflict",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "409",
+        "title" : "Conflicting request",
+        "details" : "The request cannot be processed as the resource is in use."
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-createGroup-409-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-createGroup-schema-409');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-createGroup-409-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-createGroup-title-500"></h3>
+                            <p id="examples-TopologyGroups-createGroup-description-500" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups500_description = `Internal Server Error`;
+                              var responseTopologyGroups500_description_break = responseTopologyGroups500_description.indexOf('\n');
+                              if (responseTopologyGroups500_description_break == -1) {
+                                $("#examples-TopologyGroups-createGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description);
+                              } else {
+                                $("#examples-TopologyGroups-createGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description.substring(0, responseTopologyGroups500_description_break));
+                                $("#examples-TopologyGroups-createGroup-description-500").html(responseTopologyGroups500_description.substring(responseTopologyGroups500_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-createGroup-500" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-createGroup-500-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-createGroup-500-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-createGroup-500-schema">
+                                <div id="responses-TopologyGroups-createGroup-schema-500" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Internal Server Error",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "500",
+        "title" : "Internal Server Error",
+        "details" : "Internal Server Error occurred"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-createGroup-500-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-createGroup-schema-500');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-createGroup-500-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                        </article>
+                      </div>
+                      <hr>
+                    <div id="api-TopologyGroups-deleteGroup">
+                      <article id="api-TopologyGroups-deleteGroup-0" data-group="User" data-name="deleteGroup" data-version="0">
+                        <div class="pull-left">
+                          <h1>deleteGroup</h1>
+                          <p>Delete a group with specified id.</p>
+                        </div>
+                        <div class="pull-right"></div>
+                        <div class="clearfix"></div>
+                        <p></p>
+                        <p class="marked">Delete a group with specified id.</p>
+                        <p></p>
+                        <br />
+                        <pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/groups/{groupId}</span></code></pre>
+                        <p>
+                          <h3>Usage and SDK Samples</h3>
+                        </p>
+                        <ul class="nav nav-tabs nav-tabs-examples">
+                          <li class="active"><a href="#examples-TopologyGroups-deleteGroup-0-curl">Curl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-java">Java</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-dart">Dart</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-android">Android</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-deleteGroup-0-groovy">Groovy</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-objc">Obj-C</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-javascript">JavaScript</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-deleteGroup-0-angular">Angular</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-csharp">C#</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-php">PHP</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-perl">Perl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-python">Python</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-deleteGroup-0-rust">Rust</a></li>
+                        </ul>
+
+                        <div class="tab-content">
+                          <div class="tab-pane active" id="examples-TopologyGroups-deleteGroup-0-curl">
+                            <pre class="prettyprint"><code class="language-bsh">curl -X DELETE \
+ -H "Accept: application/problem+json" \
+ "https://localhost/topology-inventory/v1alpha11/groups/{groupId}"
+</code></pre>
+                          </div>
+                          <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-java">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.TopologyGroupsApi;
+
+import java.io.File;
+import java.util.*;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String groupId = groupId_example; // String | 
+
+        try {
+            apiInstance.deleteGroup(accept, groupId);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#deleteGroup");
+            e.printStackTrace();
+        }
+    }
+}
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-dart">
+                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String accept = new String(); // String | 
+final String groupId = new String(); // String | 
+
+try {
+    final result = await api_instance.deleteGroup(accept, groupId);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->deleteGroup: $e\n');
+}
+
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-android">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.TopologyGroupsApi;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String groupId = groupId_example; // String | 
+
+        try {
+            apiInstance.deleteGroup(accept, groupId);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#deleteGroup");
+            e.printStackTrace();
+        }
+    }
+}</code></pre>
+                          </div>
+  <!--
+  <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-groovy">
+  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+  </div> -->
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-objc">
+                              <pre class="prettyprint"><code class="language-cpp">
+
+// Create an instance of the API class
+TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
+String *accept = application/json; //  (default to application/json)
+String *groupId = groupId_example; //  (default to null)
+
+// Delete a group with specified id.
+[apiInstance deleteGroupWith:accept
+    groupId:groupId
+              completionHandler: ^(NSError* error) {
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-javascript">
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
+
+// Create an instance of the API class
+var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
+var accept = application/json; // {String} 
+var groupId = groupId_example; // {String} 
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+api.deleteGroup(accept, groupId, callback);
+</code></pre>
+                            </div>
+
+                            <!--<div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-angular">
+              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+            </div>-->
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-csharp">
+                              <pre class="prettyprint"><code class="language-cs">using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class deleteGroupExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new TopologyGroupsApi();
+            var accept = application/json;  // String |  (default to application/json)
+            var groupId = groupId_example;  // String |  (default to null)
+
+            try {
+                // Delete a group with specified id.
+                apiInstance.deleteGroup(accept, groupId);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling TopologyGroupsApi.deleteGroup: " + e.Message );
+            }
+        }
+    }
+}
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-php">
+                              <pre class="prettyprint"><code class="language-php"><&#63;php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
+$accept = application/json; // String | 
+$groupId = groupId_example; // String | 
+
+try {
+    $api_instance->deleteGroup($accept, $groupId);
+} catch (Exception $e) {
+    echo 'Exception when calling TopologyGroupsApi->deleteGroup: ', $e->getMessage(), PHP_EOL;
+}
+?></code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-perl">
+                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::TopologyGroupsApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
+my $accept = application/json; # String | 
+my $groupId = groupId_example; # String | 
+
+eval {
+    $api_instance->deleteGroup(accept => $accept, groupId => $groupId);
+};
+if ($@) {
+    warn "Exception when calling TopologyGroupsApi->deleteGroup: $@\n";
+}</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-python">
+                              <pre class="prettyprint"><code class="language-python">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.TopologyGroupsApi()
+accept = application/json # String |  (default to application/json)
+groupId = groupId_example # String |  (default to null)
+
+try:
+    # Delete a group with specified id.
+    api_instance.delete_group(accept, groupId)
+except ApiException as e:
+    print("Exception when calling TopologyGroupsApi->deleteGroup: %s\n" % e)</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-deleteGroup-0-rust">
+                              <pre class="prettyprint"><code class="language-rust">extern crate TopologyGroupsApi;
+
+pub fn main() {
+    let accept = application/json; // String
+    let groupId = groupId_example; // String
+
+    let mut context = TopologyGroupsApi::Context::default();
+    let result = client.deleteGroup(accept, groupId, &context).wait();
+
+    println!("{:?}", result);
+}
+</code></pre>
+                            </div>
+                          </div>
+
+                          <h2>Scopes</h2>
+                          <table>
+                            
+                          </table>
+
+                          <h2>Parameters</h2>
+
+                            <div class="methodsubtabletitle">Path parameters</div>
+                            <table id="methodsubtable">
+                                <tr>
+                                  <th width="150px">Name</th>
+                                  <th>Description</th>
+                                </tr>
+                                  <tr><td style="width:150px;">groupId*</td>
+<td>
+
+
+    <div id="d2e199_deleteGroup_groupId">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+                            <div class="methodsubtabletitle">Header parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                  <tr><td style="width:150px;">Accept*</td>
+<td>
+
+
+    <div id="d2e199_deleteGroup_accept">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+
+
+
+                          <h2>Responses</h2>
+                            <h3 id="examples-TopologyGroups-deleteGroup-title-204"></h3>
+                            <p id="examples-TopologyGroups-deleteGroup-description-204" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups204_description = `No Content`;
+                              var responseTopologyGroups204_description_break = responseTopologyGroups204_description.indexOf('\n');
+                              if (responseTopologyGroups204_description_break == -1) {
+                                $("#examples-TopologyGroups-deleteGroup-title-204").text("Status: 204 - " + responseTopologyGroups204_description);
+                              } else {
+                                $("#examples-TopologyGroups-deleteGroup-title-204").text("Status: 204 - " + responseTopologyGroups204_description.substring(0, responseTopologyGroups204_description_break));
+                                $("#examples-TopologyGroups-deleteGroup-description-204").html(responseTopologyGroups204_description.substring(responseTopologyGroups204_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-deleteGroup-204" class="nav nav-tabs nav-tabs-examples" >
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-deleteGroup-204-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-deleteGroup-204-schema">
+                                <div id="responses-TopologyGroups-deleteGroup-schema-204" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "No Content",
+  "content" : { }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-deleteGroup-204-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-deleteGroup-schema-204');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-deleteGroup-204-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-deleteGroup-title-400"></h3>
+                            <p id="examples-TopologyGroups-deleteGroup-description-400" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups400_description = `Bad Request`;
+                              var responseTopologyGroups400_description_break = responseTopologyGroups400_description.indexOf('\n');
+                              if (responseTopologyGroups400_description_break == -1) {
+                                $("#examples-TopologyGroups-deleteGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description);
+                              } else {
+                                $("#examples-TopologyGroups-deleteGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description.substring(0, responseTopologyGroups400_description_break));
+                                $("#examples-TopologyGroups-deleteGroup-description-400").html(responseTopologyGroups400_description.substring(responseTopologyGroups400_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-deleteGroup-400" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-deleteGroup-400-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-deleteGroup-400-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-deleteGroup-400-schema">
+                                <div id="responses-TopologyGroups-deleteGroup-schema-400" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Bad Request",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "400",
+        "title" : "Bad Request",
+        "details" : "The provided request is not valid"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-deleteGroup-400-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-deleteGroup-schema-400');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-deleteGroup-400-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-deleteGroup-title-401"></h3>
+                            <p id="examples-TopologyGroups-deleteGroup-description-401" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups401_description = `Unauthorized`;
+                              var responseTopologyGroups401_description_break = responseTopologyGroups401_description.indexOf('\n');
+                              if (responseTopologyGroups401_description_break == -1) {
+                                $("#examples-TopologyGroups-deleteGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description);
+                              } else {
+                                $("#examples-TopologyGroups-deleteGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description.substring(0, responseTopologyGroups401_description_break));
+                                $("#examples-TopologyGroups-deleteGroup-description-401").html(responseTopologyGroups401_description.substring(responseTopologyGroups401_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-deleteGroup-401" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-deleteGroup-401-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-deleteGroup-401-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-deleteGroup-401-schema">
+                                <div id="responses-TopologyGroups-deleteGroup-schema-401" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Unauthorized",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "401",
+        "title" : "Unauthorized request",
+        "details" : "This request is unauthorized"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-deleteGroup-401-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-deleteGroup-schema-401');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-deleteGroup-401-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-deleteGroup-title-403"></h3>
+                            <p id="examples-TopologyGroups-deleteGroup-description-403" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups403_description = `Forbidden`;
+                              var responseTopologyGroups403_description_break = responseTopologyGroups403_description.indexOf('\n');
+                              if (responseTopologyGroups403_description_break == -1) {
+                                $("#examples-TopologyGroups-deleteGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description);
+                              } else {
+                                $("#examples-TopologyGroups-deleteGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description.substring(0, responseTopologyGroups403_description_break));
+                                $("#examples-TopologyGroups-deleteGroup-description-403").html(responseTopologyGroups403_description.substring(responseTopologyGroups403_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-deleteGroup-403" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-deleteGroup-403-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-deleteGroup-403-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-deleteGroup-403-schema">
+                                <div id="responses-TopologyGroups-deleteGroup-schema-403" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Forbidden",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "403",
+        "title" : "Request Forbidden",
+        "details" : "This request is forbidden"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-deleteGroup-403-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-deleteGroup-schema-403');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-deleteGroup-403-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-deleteGroup-title-404"></h3>
+                            <p id="examples-TopologyGroups-deleteGroup-description-404" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups404_description = `Not Found`;
+                              var responseTopologyGroups404_description_break = responseTopologyGroups404_description.indexOf('\n');
+                              if (responseTopologyGroups404_description_break == -1) {
+                                $("#examples-TopologyGroups-deleteGroup-title-404").text("Status: 404 - " + responseTopologyGroups404_description);
+                              } else {
+                                $("#examples-TopologyGroups-deleteGroup-title-404").text("Status: 404 - " + responseTopologyGroups404_description.substring(0, responseTopologyGroups404_description_break));
+                                $("#examples-TopologyGroups-deleteGroup-description-404").html(responseTopologyGroups404_description.substring(responseTopologyGroups404_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-deleteGroup-404" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-deleteGroup-404-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-deleteGroup-404-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-deleteGroup-404-schema">
+                                <div id="responses-TopologyGroups-deleteGroup-schema-404" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Not Found",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "404",
+        "title" : "Resource Not Found",
+        "details" : "The requested resource is not found"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-deleteGroup-404-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-deleteGroup-schema-404');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-deleteGroup-404-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-deleteGroup-title-500"></h3>
+                            <p id="examples-TopologyGroups-deleteGroup-description-500" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups500_description = `Internal Server Error`;
+                              var responseTopologyGroups500_description_break = responseTopologyGroups500_description.indexOf('\n');
+                              if (responseTopologyGroups500_description_break == -1) {
+                                $("#examples-TopologyGroups-deleteGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description);
+                              } else {
+                                $("#examples-TopologyGroups-deleteGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description.substring(0, responseTopologyGroups500_description_break));
+                                $("#examples-TopologyGroups-deleteGroup-description-500").html(responseTopologyGroups500_description.substring(responseTopologyGroups500_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-deleteGroup-500" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-deleteGroup-500-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-deleteGroup-500-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-deleteGroup-500-schema">
+                                <div id="responses-TopologyGroups-deleteGroup-schema-500" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Internal Server Error",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "500",
+        "title" : "Internal Server Error",
+        "details" : "Internal Server Error occurred"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-deleteGroup-500-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-deleteGroup-schema-500');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-deleteGroup-500-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                        </article>
+                      </div>
+                      <hr>
+                    <div id="api-TopologyGroups-getAllGroups">
+                      <article id="api-TopologyGroups-getAllGroups-0" data-group="User" data-name="getAllGroups" data-version="0">
+                        <div class="pull-left">
+                          <h1>getAllGroups</h1>
+                          <p>Get all groups.</p>
+                        </div>
+                        <div class="pull-right"></div>
+                        <div class="clearfix"></div>
+                        <p></p>
+                        <p class="marked">Get all groups.</p>
+                        <p></p>
+                        <br />
+                        <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/groups</span></code></pre>
+                        <p>
+                          <h3>Usage and SDK Samples</h3>
+                        </p>
+                        <ul class="nav nav-tabs nav-tabs-examples">
+                          <li class="active"><a href="#examples-TopologyGroups-getAllGroups-0-curl">Curl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-java">Java</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-dart">Dart</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-android">Android</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-getAllGroups-0-groovy">Groovy</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-objc">Obj-C</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-javascript">JavaScript</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-getAllGroups-0-angular">Angular</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-csharp">C#</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-php">PHP</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-perl">Perl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-python">Python</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getAllGroups-0-rust">Rust</a></li>
+                        </ul>
+
+                        <div class="tab-content">
+                          <div class="tab-pane active" id="examples-TopologyGroups-getAllGroups-0-curl">
+                            <pre class="prettyprint"><code class="language-bsh">curl -X GET \
+ -H "Accept: application/json,application/problem+json" \
+ "https://localhost/topology-inventory/v1alpha11/groups?offset=56&limit=56"
+</code></pre>
+                          </div>
+                          <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-java">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.TopologyGroupsApi;
+
+import java.io.File;
+import java.util.*;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        Integer offset = 56; // Integer | Pagination offset.
+        Integer limit = 56; // Integer | Result limiter.
+
+        try {
+            Groups result = apiInstance.getAllGroups(accept, offset, limit);
+            System.out.println(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#getAllGroups");
+            e.printStackTrace();
+        }
+    }
+}
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-dart">
+                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String accept = 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.getAllGroups(accept, offset, limit);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->getAllGroups: $e\n');
+}
+
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-android">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.TopologyGroupsApi;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        Integer offset = 56; // Integer | Pagination offset.
+        Integer limit = 56; // Integer | Result limiter.
+
+        try {
+            Groups result = apiInstance.getAllGroups(accept, offset, limit);
+            System.out.println(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#getAllGroups");
+            e.printStackTrace();
+        }
+    }
+}</code></pre>
+                          </div>
+  <!--
+  <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-groovy">
+  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+  </div> -->
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-objc">
+                              <pre class="prettyprint"><code class="language-cpp">
+
+// Create an instance of the API class
+TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
+String *accept = application/json; //  (default to application/json)
+Integer *offset = 56; // Pagination offset. (optional) (default to 0)
+Integer *limit = 56; // Result limiter. (optional) (default to 500)
+
+// Get all groups.
+[apiInstance getAllGroupsWith:accept
+    offset:offset
+    limit:limit
+              completionHandler: ^(Groups output, NSError* error) {
+    if (output) {
+        NSLog(@"%@", output);
+    }
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-javascript">
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
+
+// Create an instance of the API class
+var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
+var accept = application/json; // {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. Returned data: ' + data);
+  }
+};
+api.getAllGroups(accept, opts, callback);
+</code></pre>
+                            </div>
+
+                            <!--<div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-angular">
+              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+            </div>-->
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-csharp">
+                              <pre class="prettyprint"><code class="language-cs">using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class getAllGroupsExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new TopologyGroupsApi();
+            var accept = application/json;  // String |  (default to application/json)
+            var offset = 56;  // Integer | Pagination offset. (optional)  (default to 0)
+            var limit = 56;  // Integer | Result limiter. (optional)  (default to 500)
+
+            try {
+                // Get all groups.
+                Groups result = apiInstance.getAllGroups(accept, offset, limit);
+                Debug.WriteLine(result);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling TopologyGroupsApi.getAllGroups: " + e.Message );
+            }
+        }
+    }
+}
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-php">
+                              <pre class="prettyprint"><code class="language-php"><&#63;php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
+$accept = application/json; // String | 
+$offset = 56; // Integer | Pagination offset.
+$limit = 56; // Integer | Result limiter.
+
+try {
+    $result = $api_instance->getAllGroups($accept, $offset, $limit);
+    print_r($result);
+} catch (Exception $e) {
+    echo 'Exception when calling TopologyGroupsApi->getAllGroups: ', $e->getMessage(), PHP_EOL;
+}
+?></code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-perl">
+                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::TopologyGroupsApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
+my $accept = application/json; # String | 
+my $offset = 56; # Integer | Pagination offset.
+my $limit = 56; # Integer | Result limiter.
+
+eval {
+    my $result = $api_instance->getAllGroups(accept => $accept, offset => $offset, limit => $limit);
+    print Dumper($result);
+};
+if ($@) {
+    warn "Exception when calling TopologyGroupsApi->getAllGroups: $@\n";
+}</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-python">
+                              <pre class="prettyprint"><code class="language-python">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.TopologyGroupsApi()
+accept = application/json # String |  (default to application/json)
+offset = 56 # Integer | Pagination offset. (optional) (default to 0)
+limit = 56 # Integer | Result limiter. (optional) (default to 500)
+
+try:
+    # 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 TopologyGroupsApi->getAllGroups: %s\n" % e)</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getAllGroups-0-rust">
+                              <pre class="prettyprint"><code class="language-rust">extern crate TopologyGroupsApi;
+
+pub fn main() {
+    let accept = application/json; // String
+    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);
+}
+</code></pre>
+                            </div>
+                          </div>
+
+                          <h2>Scopes</h2>
+                          <table>
+                            
+                          </table>
+
+                          <h2>Parameters</h2>
+
+
+                            <div class="methodsubtabletitle">Header parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                  <tr><td style="width:150px;">Accept*</td>
+<td>
+
+
+    <div id="d2e199_getAllGroups_accept">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+
+
+                            <div class="methodsubtabletitle">Query parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                <tr><td style="width:150px;">offset</td>
+<td>
+
+
+    <div id="d2e199_getAllGroups_offset">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    Integer
+                </span>
+
+                    <div class="inner description marked">
+Pagination offset.
+                    </div>
+            </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                                <tr><td style="width:150px;">limit</td>
+<td>
+
+
+    <div id="d2e199_getAllGroups_limit">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    Integer
+                </span>
+
+                    <div class="inner description marked">
+Result limiter.
+                    </div>
+            </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+                          <h2>Responses</h2>
+                            <h3 id="examples-TopologyGroups-getAllGroups-title-200"></h3>
+                            <p id="examples-TopologyGroups-getAllGroups-description-200" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups200_description = `OK`;
+                              var responseTopologyGroups200_description_break = responseTopologyGroups200_description.indexOf('\n');
+                              if (responseTopologyGroups200_description_break == -1) {
+                                $("#examples-TopologyGroups-getAllGroups-title-200").text("Status: 200 - " + responseTopologyGroups200_description);
+                              } else {
+                                $("#examples-TopologyGroups-getAllGroups-title-200").text("Status: 200 - " + responseTopologyGroups200_description.substring(0, responseTopologyGroups200_description_break));
+                                $("#examples-TopologyGroups-getAllGroups-description-200").html(responseTopologyGroups200_description.substring(responseTopologyGroups200_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getAllGroups-200" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getAllGroups-200-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getAllGroups-200-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getAllGroups-200-schema">
+                                <div id="responses-TopologyGroups-getAllGroups-schema-200" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "OK",
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Groups"
+      },
+      "examples" : {
+        "groups" : {
+          "$ref" : "#/components/examples/GroupsResponseExample"
+        }
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getAllGroups-200-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getAllGroups-schema-200');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getAllGroups-200-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getAllGroups-title-204"></h3>
+                            <p id="examples-TopologyGroups-getAllGroups-description-204" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups204_description = `No Content`;
+                              var responseTopologyGroups204_description_break = responseTopologyGroups204_description.indexOf('\n');
+                              if (responseTopologyGroups204_description_break == -1) {
+                                $("#examples-TopologyGroups-getAllGroups-title-204").text("Status: 204 - " + responseTopologyGroups204_description);
+                              } else {
+                                $("#examples-TopologyGroups-getAllGroups-title-204").text("Status: 204 - " + responseTopologyGroups204_description.substring(0, responseTopologyGroups204_description_break));
+                                $("#examples-TopologyGroups-getAllGroups-description-204").html(responseTopologyGroups204_description.substring(responseTopologyGroups204_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getAllGroups-204" class="nav nav-tabs nav-tabs-examples" >
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getAllGroups-204-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getAllGroups-204-schema">
+                                <div id="responses-TopologyGroups-getAllGroups-schema-204" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "No Content",
+  "content" : { }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getAllGroups-204-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getAllGroups-schema-204');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getAllGroups-204-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getAllGroups-title-400"></h3>
+                            <p id="examples-TopologyGroups-getAllGroups-description-400" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups400_description = `Bad Request`;
+                              var responseTopologyGroups400_description_break = responseTopologyGroups400_description.indexOf('\n');
+                              if (responseTopologyGroups400_description_break == -1) {
+                                $("#examples-TopologyGroups-getAllGroups-title-400").text("Status: 400 - " + responseTopologyGroups400_description);
+                              } else {
+                                $("#examples-TopologyGroups-getAllGroups-title-400").text("Status: 400 - " + responseTopologyGroups400_description.substring(0, responseTopologyGroups400_description_break));
+                                $("#examples-TopologyGroups-getAllGroups-description-400").html(responseTopologyGroups400_description.substring(responseTopologyGroups400_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getAllGroups-400" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getAllGroups-400-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getAllGroups-400-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getAllGroups-400-schema">
+                                <div id="responses-TopologyGroups-getAllGroups-schema-400" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Bad Request",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "400",
+        "title" : "Bad Request",
+        "details" : "The provided request is not valid"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getAllGroups-400-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getAllGroups-schema-400');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getAllGroups-400-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getAllGroups-title-401"></h3>
+                            <p id="examples-TopologyGroups-getAllGroups-description-401" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups401_description = `Unauthorized`;
+                              var responseTopologyGroups401_description_break = responseTopologyGroups401_description.indexOf('\n');
+                              if (responseTopologyGroups401_description_break == -1) {
+                                $("#examples-TopologyGroups-getAllGroups-title-401").text("Status: 401 - " + responseTopologyGroups401_description);
+                              } else {
+                                $("#examples-TopologyGroups-getAllGroups-title-401").text("Status: 401 - " + responseTopologyGroups401_description.substring(0, responseTopologyGroups401_description_break));
+                                $("#examples-TopologyGroups-getAllGroups-description-401").html(responseTopologyGroups401_description.substring(responseTopologyGroups401_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getAllGroups-401" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getAllGroups-401-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getAllGroups-401-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getAllGroups-401-schema">
+                                <div id="responses-TopologyGroups-getAllGroups-schema-401" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Unauthorized",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "401",
+        "title" : "Unauthorized request",
+        "details" : "This request is unauthorized"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getAllGroups-401-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getAllGroups-schema-401');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getAllGroups-401-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getAllGroups-title-403"></h3>
+                            <p id="examples-TopologyGroups-getAllGroups-description-403" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups403_description = `Forbidden`;
+                              var responseTopologyGroups403_description_break = responseTopologyGroups403_description.indexOf('\n');
+                              if (responseTopologyGroups403_description_break == -1) {
+                                $("#examples-TopologyGroups-getAllGroups-title-403").text("Status: 403 - " + responseTopologyGroups403_description);
+                              } else {
+                                $("#examples-TopologyGroups-getAllGroups-title-403").text("Status: 403 - " + responseTopologyGroups403_description.substring(0, responseTopologyGroups403_description_break));
+                                $("#examples-TopologyGroups-getAllGroups-description-403").html(responseTopologyGroups403_description.substring(responseTopologyGroups403_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getAllGroups-403" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getAllGroups-403-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getAllGroups-403-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getAllGroups-403-schema">
+                                <div id="responses-TopologyGroups-getAllGroups-schema-403" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Forbidden",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "403",
+        "title" : "Request Forbidden",
+        "details" : "This request is forbidden"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getAllGroups-403-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getAllGroups-schema-403');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getAllGroups-403-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getAllGroups-title-500"></h3>
+                            <p id="examples-TopologyGroups-getAllGroups-description-500" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups500_description = `Internal Server Error`;
+                              var responseTopologyGroups500_description_break = responseTopologyGroups500_description.indexOf('\n');
+                              if (responseTopologyGroups500_description_break == -1) {
+                                $("#examples-TopologyGroups-getAllGroups-title-500").text("Status: 500 - " + responseTopologyGroups500_description);
+                              } else {
+                                $("#examples-TopologyGroups-getAllGroups-title-500").text("Status: 500 - " + responseTopologyGroups500_description.substring(0, responseTopologyGroups500_description_break));
+                                $("#examples-TopologyGroups-getAllGroups-description-500").html(responseTopologyGroups500_description.substring(responseTopologyGroups500_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getAllGroups-500" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getAllGroups-500-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getAllGroups-500-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getAllGroups-500-schema">
+                                <div id="responses-TopologyGroups-getAllGroups-schema-500" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Internal Server Error",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "500",
+        "title" : "Internal Server Error",
+        "details" : "Internal Server Error occurred"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getAllGroups-500-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getAllGroups-schema-500');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getAllGroups-500-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                        </article>
+                      </div>
+                      <hr>
+                    <div id="api-TopologyGroups-getGroup">
+                      <article id="api-TopologyGroups-getGroup-0" data-group="User" data-name="getGroup" data-version="0">
+                        <div class="pull-left">
+                          <h1>getGroup</h1>
+                          <p>Get a group with specified id.</p>
+                        </div>
+                        <div class="pull-right"></div>
+                        <div class="clearfix"></div>
+                        <p></p>
+                        <p class="marked">Get a Group with specified id.</p>
+                        <p></p>
+                        <br />
+                        <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/groups/{groupId}</span></code></pre>
+                        <p>
+                          <h3>Usage and SDK Samples</h3>
+                        </p>
+                        <ul class="nav nav-tabs nav-tabs-examples">
+                          <li class="active"><a href="#examples-TopologyGroups-getGroup-0-curl">Curl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-java">Java</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-dart">Dart</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-android">Android</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-getGroup-0-groovy">Groovy</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-objc">Obj-C</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-javascript">JavaScript</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-getGroup-0-angular">Angular</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-csharp">C#</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-php">PHP</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-perl">Perl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-python">Python</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-getGroup-0-rust">Rust</a></li>
+                        </ul>
+
+                        <div class="tab-content">
+                          <div class="tab-pane active" id="examples-TopologyGroups-getGroup-0-curl">
+                            <pre class="prettyprint"><code class="language-bsh">curl -X GET \
+ -H "Accept: application/json,application/problem+json" \
+ "https://localhost/topology-inventory/v1alpha11/groups/{groupId}"
+</code></pre>
+                          </div>
+                          <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-java">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.TopologyGroupsApi;
+
+import java.io.File;
+import java.util.*;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String groupId = groupId_example; // String | 
+
+        try {
+            GroupResponse result = apiInstance.getGroup(accept, groupId);
+            System.out.println(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#getGroup");
+            e.printStackTrace();
+        }
+    }
+}
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-dart">
+                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String accept = new String(); // String | 
+final String groupId = new String(); // String | 
+
+try {
+    final result = await api_instance.getGroup(accept, groupId);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->getGroup: $e\n');
+}
+
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-android">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.TopologyGroupsApi;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String groupId = groupId_example; // String | 
+
+        try {
+            GroupResponse result = apiInstance.getGroup(accept, groupId);
+            System.out.println(result);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#getGroup");
+            e.printStackTrace();
+        }
+    }
+}</code></pre>
+                          </div>
+  <!--
+  <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-groovy">
+  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+  </div> -->
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-objc">
+                              <pre class="prettyprint"><code class="language-cpp">
+
+// Create an instance of the API class
+TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
+String *accept = application/json; //  (default to application/json)
+String *groupId = groupId_example; //  (default to null)
+
+// Get a group with specified id.
+[apiInstance getGroupWith:accept
+    groupId:groupId
+              completionHandler: ^(GroupResponse output, NSError* error) {
+    if (output) {
+        NSLog(@"%@", output);
+    }
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-javascript">
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
+
+// Create an instance of the API class
+var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
+var accept = application/json; // {String} 
+var groupId = groupId_example; // {String} 
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully. Returned data: ' + data);
+  }
+};
+api.getGroup(accept, groupId, callback);
+</code></pre>
+                            </div>
+
+                            <!--<div class="tab-pane" id="examples-TopologyGroups-getGroup-0-angular">
+              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+            </div>-->
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-csharp">
+                              <pre class="prettyprint"><code class="language-cs">using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class getGroupExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new TopologyGroupsApi();
+            var accept = application/json;  // String |  (default to application/json)
+            var groupId = groupId_example;  // String |  (default to null)
+
+            try {
+                // Get a group with specified id.
+                GroupResponse result = apiInstance.getGroup(accept, groupId);
+                Debug.WriteLine(result);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling TopologyGroupsApi.getGroup: " + e.Message );
+            }
+        }
+    }
+}
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-php">
+                              <pre class="prettyprint"><code class="language-php"><&#63;php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
+$accept = application/json; // String | 
+$groupId = groupId_example; // String | 
+
+try {
+    $result = $api_instance->getGroup($accept, $groupId);
+    print_r($result);
+} catch (Exception $e) {
+    echo 'Exception when calling TopologyGroupsApi->getGroup: ', $e->getMessage(), PHP_EOL;
+}
+?></code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-perl">
+                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::TopologyGroupsApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
+my $accept = application/json; # String | 
+my $groupId = groupId_example; # String | 
+
+eval {
+    my $result = $api_instance->getGroup(accept => $accept, groupId => $groupId);
+    print Dumper($result);
+};
+if ($@) {
+    warn "Exception when calling TopologyGroupsApi->getGroup: $@\n";
+}</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-python">
+                              <pre class="prettyprint"><code class="language-python">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.TopologyGroupsApi()
+accept = application/json # String |  (default to application/json)
+groupId = groupId_example # String |  (default to null)
+
+try:
+    # 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 TopologyGroupsApi->getGroup: %s\n" % e)</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-getGroup-0-rust">
+                              <pre class="prettyprint"><code class="language-rust">extern crate TopologyGroupsApi;
+
+pub fn main() {
+    let accept = application/json; // String
+    let groupId = groupId_example; // String
+
+    let mut context = TopologyGroupsApi::Context::default();
+    let result = client.getGroup(accept, groupId, &context).wait();
+
+    println!("{:?}", result);
+}
+</code></pre>
+                            </div>
+                          </div>
+
+                          <h2>Scopes</h2>
+                          <table>
+                            
+                          </table>
+
+                          <h2>Parameters</h2>
+
+                            <div class="methodsubtabletitle">Path parameters</div>
+                            <table id="methodsubtable">
+                                <tr>
+                                  <th width="150px">Name</th>
+                                  <th>Description</th>
+                                </tr>
+                                  <tr><td style="width:150px;">groupId*</td>
+<td>
+
+
+    <div id="d2e199_getGroup_groupId">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+                            <div class="methodsubtabletitle">Header parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                  <tr><td style="width:150px;">Accept*</td>
+<td>
+
+
+    <div id="d2e199_getGroup_accept">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+
+
+
+                          <h2>Responses</h2>
+                            <h3 id="examples-TopologyGroups-getGroup-title-200"></h3>
+                            <p id="examples-TopologyGroups-getGroup-description-200" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups200_description = `OK`;
+                              var responseTopologyGroups200_description_break = responseTopologyGroups200_description.indexOf('\n');
+                              if (responseTopologyGroups200_description_break == -1) {
+                                $("#examples-TopologyGroups-getGroup-title-200").text("Status: 200 - " + responseTopologyGroups200_description);
+                              } else {
+                                $("#examples-TopologyGroups-getGroup-title-200").text("Status: 200 - " + responseTopologyGroups200_description.substring(0, responseTopologyGroups200_description_break));
+                                $("#examples-TopologyGroups-getGroup-description-200").html(responseTopologyGroups200_description.substring(responseTopologyGroups200_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getGroup-200" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getGroup-200-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getGroup-200-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getGroup-200-schema">
+                                <div id="responses-TopologyGroups-getGroup-schema-200" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "OK",
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/GroupResponse"
+      },
+      "examples" : {
+        "group" : {
+          "$ref" : "#/components/examples/GroupResponseExample"
+        }
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getGroup-200-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getGroup-schema-200');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getGroup-200-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getGroup-title-400"></h3>
+                            <p id="examples-TopologyGroups-getGroup-description-400" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups400_description = `Bad Request`;
+                              var responseTopologyGroups400_description_break = responseTopologyGroups400_description.indexOf('\n');
+                              if (responseTopologyGroups400_description_break == -1) {
+                                $("#examples-TopologyGroups-getGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description);
+                              } else {
+                                $("#examples-TopologyGroups-getGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description.substring(0, responseTopologyGroups400_description_break));
+                                $("#examples-TopologyGroups-getGroup-description-400").html(responseTopologyGroups400_description.substring(responseTopologyGroups400_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getGroup-400" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getGroup-400-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getGroup-400-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getGroup-400-schema">
+                                <div id="responses-TopologyGroups-getGroup-schema-400" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Bad Request",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "400",
+        "title" : "Bad Request",
+        "details" : "The provided request is not valid"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getGroup-400-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getGroup-schema-400');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getGroup-400-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getGroup-title-401"></h3>
+                            <p id="examples-TopologyGroups-getGroup-description-401" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups401_description = `Unauthorized`;
+                              var responseTopologyGroups401_description_break = responseTopologyGroups401_description.indexOf('\n');
+                              if (responseTopologyGroups401_description_break == -1) {
+                                $("#examples-TopologyGroups-getGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description);
+                              } else {
+                                $("#examples-TopologyGroups-getGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description.substring(0, responseTopologyGroups401_description_break));
+                                $("#examples-TopologyGroups-getGroup-description-401").html(responseTopologyGroups401_description.substring(responseTopologyGroups401_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getGroup-401" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getGroup-401-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getGroup-401-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getGroup-401-schema">
+                                <div id="responses-TopologyGroups-getGroup-schema-401" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Unauthorized",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "401",
+        "title" : "Unauthorized request",
+        "details" : "This request is unauthorized"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getGroup-401-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getGroup-schema-401');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getGroup-401-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getGroup-title-403"></h3>
+                            <p id="examples-TopologyGroups-getGroup-description-403" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups403_description = `Forbidden`;
+                              var responseTopologyGroups403_description_break = responseTopologyGroups403_description.indexOf('\n');
+                              if (responseTopologyGroups403_description_break == -1) {
+                                $("#examples-TopologyGroups-getGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description);
+                              } else {
+                                $("#examples-TopologyGroups-getGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description.substring(0, responseTopologyGroups403_description_break));
+                                $("#examples-TopologyGroups-getGroup-description-403").html(responseTopologyGroups403_description.substring(responseTopologyGroups403_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getGroup-403" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getGroup-403-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getGroup-403-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getGroup-403-schema">
+                                <div id="responses-TopologyGroups-getGroup-schema-403" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Forbidden",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "403",
+        "title" : "Request Forbidden",
+        "details" : "This request is forbidden"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getGroup-403-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getGroup-schema-403');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getGroup-403-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getGroup-title-404"></h3>
+                            <p id="examples-TopologyGroups-getGroup-description-404" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups404_description = `Not Found`;
+                              var responseTopologyGroups404_description_break = responseTopologyGroups404_description.indexOf('\n');
+                              if (responseTopologyGroups404_description_break == -1) {
+                                $("#examples-TopologyGroups-getGroup-title-404").text("Status: 404 - " + responseTopologyGroups404_description);
+                              } else {
+                                $("#examples-TopologyGroups-getGroup-title-404").text("Status: 404 - " + responseTopologyGroups404_description.substring(0, responseTopologyGroups404_description_break));
+                                $("#examples-TopologyGroups-getGroup-description-404").html(responseTopologyGroups404_description.substring(responseTopologyGroups404_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getGroup-404" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getGroup-404-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getGroup-404-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getGroup-404-schema">
+                                <div id="responses-TopologyGroups-getGroup-schema-404" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Not Found",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "404",
+        "title" : "Resource Not Found",
+        "details" : "The requested resource is not found"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getGroup-404-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getGroup-schema-404');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getGroup-404-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-getGroup-title-500"></h3>
+                            <p id="examples-TopologyGroups-getGroup-description-500" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups500_description = `Internal Server Error`;
+                              var responseTopologyGroups500_description_break = responseTopologyGroups500_description.indexOf('\n');
+                              if (responseTopologyGroups500_description_break == -1) {
+                                $("#examples-TopologyGroups-getGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description);
+                              } else {
+                                $("#examples-TopologyGroups-getGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description.substring(0, responseTopologyGroups500_description_break));
+                                $("#examples-TopologyGroups-getGroup-description-500").html(responseTopologyGroups500_description.substring(responseTopologyGroups500_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-getGroup-500" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-getGroup-500-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-getGroup-500-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-getGroup-500-schema">
+                                <div id="responses-TopologyGroups-getGroup-schema-500" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Internal Server Error",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "500",
+        "title" : "Internal Server Error",
+        "details" : "Internal Server Error occurred"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-getGroup-500-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-getGroup-schema-500');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-getGroup-500-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                        </article>
+                      </div>
+                      <hr>
+                    <div id="api-TopologyGroups-updateGroup">
+                      <article id="api-TopologyGroups-updateGroup-0" data-group="User" data-name="updateGroup" data-version="0">
+                        <div class="pull-left">
+                          <h1>updateGroup</h1>
+                          <p>Update a Group.</p>
+                        </div>
+                        <div class="pull-right"></div>
+                        <div class="clearfix"></div>
+                        <p></p>
+                        <p class="marked">Update a Group.</p>
+                        <p></p>
+                        <br />
+                        <pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/groups/{groupId}</span></code></pre>
+                        <p>
+                          <h3>Usage and SDK Samples</h3>
+                        </p>
+                        <ul class="nav nav-tabs nav-tabs-examples">
+                          <li class="active"><a href="#examples-TopologyGroups-updateGroup-0-curl">Curl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-java">Java</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-dart">Dart</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-android">Android</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-updateGroup-0-groovy">Groovy</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-objc">Obj-C</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-javascript">JavaScript</a></li>
+                          <!--<li class=""><a href="#examples-TopologyGroups-updateGroup-0-angular">Angular</a></li>-->
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-csharp">C#</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-php">PHP</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-perl">Perl</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-python">Python</a></li>
+                          <li class=""><a href="#examples-TopologyGroups-updateGroup-0-rust">Rust</a></li>
+                        </ul>
+
+                        <div class="tab-content">
+                          <div class="tab-pane active" id="examples-TopologyGroups-updateGroup-0-curl">
+                            <pre class="prettyprint"><code class="language-bsh">curl -X PUT \
+ -H "Accept: application/problem+json" \
+ -H "Content-Type: application/json" \
+ "https://localhost/topology-inventory/v1alpha11/groups/{groupId}" \
+ -d '{
+  &quot;groupName&quot; : &quot;groupName&quot;,
+  &quot;criteria&quot; : {
+    &quot;resourceInstances&quot; : [ &quot;resourceInstances&quot;, &quot;resourceInstances&quot; ]
+  }
+}'
+</code></pre>
+                          </div>
+                          <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-java">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.TopologyGroupsApi;
+
+import java.io.File;
+import java.util.*;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String contentType = application/json; // String | 
+        String groupId = groupId_example; // String | 
+        Group group = ; // Group | 
+
+        try {
+            apiInstance.updateGroup(accept, contentType, groupId, group);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#updateGroup");
+            e.printStackTrace();
+        }
+    }
+}
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-dart">
+                            <pre class="prettyprint"><code class="language-dart">import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String accept = new String(); // String | 
+final String contentType = new String(); // String | 
+final String groupId = new String(); // String | 
+final Group group = new Group(); // Group | 
+
+try {
+    final result = await api_instance.updateGroup(accept, contentType, groupId, group);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->updateGroup: $e\n');
+}
+
+</code></pre>
+                          </div>
+
+                          <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-android">
+                            <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.TopologyGroupsApi;
+
+public class TopologyGroupsApiExample {
+    public static void main(String[] args) {
+        TopologyGroupsApi apiInstance = new TopologyGroupsApi();
+        String accept = application/json; // String | 
+        String contentType = application/json; // String | 
+        String groupId = groupId_example; // String | 
+        Group group = ; // Group | 
+
+        try {
+            apiInstance.updateGroup(accept, contentType, groupId, group);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling TopologyGroupsApi#updateGroup");
+            e.printStackTrace();
+        }
+    }
+}</code></pre>
+                          </div>
+  <!--
+  <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-groovy">
+  <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+  </div> -->
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-objc">
+                              <pre class="prettyprint"><code class="language-cpp">
+
+// Create an instance of the API class
+TopologyGroupsApi *apiInstance = [[TopologyGroupsApi alloc] init];
+String *accept = application/json; //  (default to application/json)
+String *contentType = application/json; //  (default to application/json)
+String *groupId = groupId_example; //  (default to null)
+Group *group = ; // 
+
+// Update a Group.
+[apiInstance updateGroupWith:accept
+    contentType:contentType
+    groupId:groupId
+    group:group
+              completionHandler: ^(NSError* error) {
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-javascript">
+                              <pre class="prettyprint"><code class="language-js">var TopologyExposureAndInventoryApi = require('topology_exposure_and_inventory_api');
+
+// Create an instance of the API class
+var api = new TopologyExposureAndInventoryApi.TopologyGroupsApi()
+var accept = application/json; // {String} 
+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.');
+  }
+};
+api.updateGroup(accept, contentType, groupId, group, callback);
+</code></pre>
+                            </div>
+
+                            <!--<div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-angular">
+              <pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
+            </div>-->
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-csharp">
+                              <pre class="prettyprint"><code class="language-cs">using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class updateGroupExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new TopologyGroupsApi();
+            var accept = application/json;  // String |  (default to application/json)
+            var contentType = application/json;  // String |  (default to application/json)
+            var groupId = groupId_example;  // String |  (default to null)
+            var group = new Group(); // Group | 
+
+            try {
+                // Update a Group.
+                apiInstance.updateGroup(accept, contentType, groupId, group);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling TopologyGroupsApi.updateGroup: " + e.Message );
+            }
+        }
+    }
+}
+</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-php">
+                              <pre class="prettyprint"><code class="language-php"><&#63;php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\TopologyGroupsApi();
+$accept = application/json; // String | 
+$contentType = application/json; // String | 
+$groupId = groupId_example; // String | 
+$group = ; // Group | 
+
+try {
+    $api_instance->updateGroup($accept, $contentType, $groupId, $group);
+} catch (Exception $e) {
+    echo 'Exception when calling TopologyGroupsApi->updateGroup: ', $e->getMessage(), PHP_EOL;
+}
+?></code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-perl">
+                              <pre class="prettyprint"><code class="language-perl">use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::TopologyGroupsApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::TopologyGroupsApi->new();
+my $accept = application/json; # String | 
+my $contentType = application/json; # String | 
+my $groupId = groupId_example; # String | 
+my $group = WWW::OPenAPIClient::Object::Group->new(); # Group | 
+
+eval {
+    $api_instance->updateGroup(accept => $accept, contentType => $contentType, groupId => $groupId, group => $group);
+};
+if ($@) {
+    warn "Exception when calling TopologyGroupsApi->updateGroup: $@\n";
+}</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-python">
+                              <pre class="prettyprint"><code class="language-python">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.TopologyGroupsApi()
+accept = application/json # String |  (default to application/json)
+contentType = application/json # String |  (default to application/json)
+groupId = groupId_example # String |  (default to null)
+group =  # Group | 
+
+try:
+    # Update a Group.
+    api_instance.update_group(accept, contentType, groupId, group)
+except ApiException as e:
+    print("Exception when calling TopologyGroupsApi->updateGroup: %s\n" % e)</code></pre>
+                            </div>
+
+                            <div class="tab-pane" id="examples-TopologyGroups-updateGroup-0-rust">
+                              <pre class="prettyprint"><code class="language-rust">extern crate TopologyGroupsApi;
+
+pub fn main() {
+    let accept = application/json; // String
+    let contentType = application/json; // String
+    let groupId = groupId_example; // String
+    let group = ; // Group
+
+    let mut context = TopologyGroupsApi::Context::default();
+    let result = client.updateGroup(accept, contentType, groupId, group, &context).wait();
+
+    println!("{:?}", result);
+}
+</code></pre>
+                            </div>
+                          </div>
+
+                          <h2>Scopes</h2>
+                          <table>
+                            
+                          </table>
+
+                          <h2>Parameters</h2>
+
+                            <div class="methodsubtabletitle">Path parameters</div>
+                            <table id="methodsubtable">
+                                <tr>
+                                  <th width="150px">Name</th>
+                                  <th>Description</th>
+                                </tr>
+                                  <tr><td style="width:150px;">groupId*</td>
+<td>
+
+
+    <div id="d2e199_updateGroup_groupId">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+                            <div class="methodsubtabletitle">Header parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                  <tr><td style="width:150px;">Accept*</td>
+<td>
+
+
+    <div id="d2e199_updateGroup_accept">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                                  <tr><td style="width:150px;">Content-Type*</td>
+<td>
+
+
+    <div id="d2e199_updateGroup_contentType">
+        <div class="json-schema-view">
+            <div class="primitive">
+                <span class="type">
+                    String
+                </span>
+
+            </div>
+                <div class="inner required">
+                    Required
+                </div>
+        </div>
+    </div>
+</td>
+</tr>
+
+                            </table>
+
+                            <div class="methodsubtabletitle">Body parameters</div>
+                            <table id="methodsubtable">
+                              <tr>
+                                <th width="150px">Name</th>
+                                <th>Description</th>
+                              </tr>
+                                <tr><td style="width:150px;">group <span style="color:red;">*</span></td>
+<td>
+<p class="marked"></p>
+<script>
+$(document).ready(function() {
+  var schemaWrapper = {
+  "content" : {
+    "application/json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/Group"
+      },
+      "examples" : {
+        "dynamicGroup" : {
+          "$ref" : "#/components/examples/DynamicGroupExample"
+        },
+        "staticGroup" : {
+          "$ref" : "#/components/examples/StaticGroupExample"
+        }
+      }
+    }
+  },
+  "required" : true
+};
+
+  var schema = findNode('schema',schemaWrapper).schema;
+  if (!schema) {
+    schema = schemaWrapper.schema;
+  }
+  if (schema.$ref != null) {
+    schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
+  } else {
+    schemaWrapper.definitions = Object.assign({}, defs);
+    $RefParser.dereference(schemaWrapper).catch(function(err) {
+      console.log(err);
+    });
+  }
+
+  var view = new JSONSchemaView(schema,2,{isBodyParam: true});
+  var result = $('#d2e199_updateGroup_group');
+  result.empty();
+  result.append(view.render());
+});
+</script>
+<div id="d2e199_updateGroup_group"></div>
+</td>
+</tr>
+
+                            </table>
+
+
+
+                          <h2>Responses</h2>
+                            <h3 id="examples-TopologyGroups-updateGroup-title-204"></h3>
+                            <p id="examples-TopologyGroups-updateGroup-description-204" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups204_description = `No Content`;
+                              var responseTopologyGroups204_description_break = responseTopologyGroups204_description.indexOf('\n');
+                              if (responseTopologyGroups204_description_break == -1) {
+                                $("#examples-TopologyGroups-updateGroup-title-204").text("Status: 204 - " + responseTopologyGroups204_description);
+                              } else {
+                                $("#examples-TopologyGroups-updateGroup-title-204").text("Status: 204 - " + responseTopologyGroups204_description.substring(0, responseTopologyGroups204_description_break));
+                                $("#examples-TopologyGroups-updateGroup-description-204").html(responseTopologyGroups204_description.substring(responseTopologyGroups204_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-updateGroup-204" class="nav nav-tabs nav-tabs-examples" >
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-updateGroup-204-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-updateGroup-204-schema">
+                                <div id="responses-TopologyGroups-updateGroup-schema-204" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "No Content",
+  "content" : { }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-updateGroup-204-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-updateGroup-schema-204');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-updateGroup-204-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-updateGroup-title-400"></h3>
+                            <p id="examples-TopologyGroups-updateGroup-description-400" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups400_description = `Bad Request`;
+                              var responseTopologyGroups400_description_break = responseTopologyGroups400_description.indexOf('\n');
+                              if (responseTopologyGroups400_description_break == -1) {
+                                $("#examples-TopologyGroups-updateGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description);
+                              } else {
+                                $("#examples-TopologyGroups-updateGroup-title-400").text("Status: 400 - " + responseTopologyGroups400_description.substring(0, responseTopologyGroups400_description_break));
+                                $("#examples-TopologyGroups-updateGroup-description-400").html(responseTopologyGroups400_description.substring(responseTopologyGroups400_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-updateGroup-400" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-updateGroup-400-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-updateGroup-400-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-updateGroup-400-schema">
+                                <div id="responses-TopologyGroups-updateGroup-schema-400" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Bad Request",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "400",
+        "title" : "Bad Request",
+        "details" : "The provided request is not valid"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-updateGroup-400-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-updateGroup-schema-400');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-updateGroup-400-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-updateGroup-title-401"></h3>
+                            <p id="examples-TopologyGroups-updateGroup-description-401" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups401_description = `Unauthorized`;
+                              var responseTopologyGroups401_description_break = responseTopologyGroups401_description.indexOf('\n');
+                              if (responseTopologyGroups401_description_break == -1) {
+                                $("#examples-TopologyGroups-updateGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description);
+                              } else {
+                                $("#examples-TopologyGroups-updateGroup-title-401").text("Status: 401 - " + responseTopologyGroups401_description.substring(0, responseTopologyGroups401_description_break));
+                                $("#examples-TopologyGroups-updateGroup-description-401").html(responseTopologyGroups401_description.substring(responseTopologyGroups401_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-updateGroup-401" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-updateGroup-401-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-updateGroup-401-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-updateGroup-401-schema">
+                                <div id="responses-TopologyGroups-updateGroup-schema-401" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Unauthorized",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "401",
+        "title" : "Unauthorized request",
+        "details" : "This request is unauthorized"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-updateGroup-401-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-updateGroup-schema-401');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-updateGroup-401-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-updateGroup-title-403"></h3>
+                            <p id="examples-TopologyGroups-updateGroup-description-403" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups403_description = `Forbidden`;
+                              var responseTopologyGroups403_description_break = responseTopologyGroups403_description.indexOf('\n');
+                              if (responseTopologyGroups403_description_break == -1) {
+                                $("#examples-TopologyGroups-updateGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description);
+                              } else {
+                                $("#examples-TopologyGroups-updateGroup-title-403").text("Status: 403 - " + responseTopologyGroups403_description.substring(0, responseTopologyGroups403_description_break));
+                                $("#examples-TopologyGroups-updateGroup-description-403").html(responseTopologyGroups403_description.substring(responseTopologyGroups403_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-updateGroup-403" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-updateGroup-403-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-updateGroup-403-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-updateGroup-403-schema">
+                                <div id="responses-TopologyGroups-updateGroup-schema-403" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Forbidden",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "403",
+        "title" : "Request Forbidden",
+        "details" : "This request is forbidden"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-updateGroup-403-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-updateGroup-schema-403');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-updateGroup-403-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-updateGroup-title-409"></h3>
+                            <p id="examples-TopologyGroups-updateGroup-description-409" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups409_description = `Conflict`;
+                              var responseTopologyGroups409_description_break = responseTopologyGroups409_description.indexOf('\n');
+                              if (responseTopologyGroups409_description_break == -1) {
+                                $("#examples-TopologyGroups-updateGroup-title-409").text("Status: 409 - " + responseTopologyGroups409_description);
+                              } else {
+                                $("#examples-TopologyGroups-updateGroup-title-409").text("Status: 409 - " + responseTopologyGroups409_description.substring(0, responseTopologyGroups409_description_break));
+                                $("#examples-TopologyGroups-updateGroup-description-409").html(responseTopologyGroups409_description.substring(responseTopologyGroups409_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-updateGroup-409" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-updateGroup-409-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-updateGroup-409-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-updateGroup-409-schema">
+                                <div id="responses-TopologyGroups-updateGroup-schema-409" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Conflict",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "409",
+        "title" : "Conflicting request",
+        "details" : "The request cannot be processed as the resource is in use."
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-updateGroup-409-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-updateGroup-schema-409');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-updateGroup-409-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                            <h3 id="examples-TopologyGroups-updateGroup-title-500"></h3>
+                            <p id="examples-TopologyGroups-updateGroup-description-500" class="marked"></p>
+                            <script>
+                              var responseTopologyGroups500_description = `Internal Server Error`;
+                              var responseTopologyGroups500_description_break = responseTopologyGroups500_description.indexOf('\n');
+                              if (responseTopologyGroups500_description_break == -1) {
+                                $("#examples-TopologyGroups-updateGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description);
+                              } else {
+                                $("#examples-TopologyGroups-updateGroup-title-500").text("Status: 500 - " + responseTopologyGroups500_description.substring(0, responseTopologyGroups500_description_break));
+                                $("#examples-TopologyGroups-updateGroup-description-500").html(responseTopologyGroups500_description.substring(responseTopologyGroups500_description_break));
+                              }
+                            </script>
+
+
+                            <ul id="responses-detail-TopologyGroups-updateGroup-500" class="nav nav-tabs nav-tabs-examples" >
+                                <li class="active">
+                                  <a data-toggle="tab" href="#responses-TopologyGroups-updateGroup-500-schema">Schema</a>
+                                </li>
+
+
+
+
+                            </ul>
+
+
+                            <div class="tab-content" id="responses-TopologyGroups-updateGroup-500-wrapper" style='margin-bottom: 10px;'>
+                              <div class="tab-pane active" id="responses-TopologyGroups-updateGroup-500-schema">
+                                <div id="responses-TopologyGroups-updateGroup-schema-500" class="exampleStyle">
+                                  <script>
+                                    $(document).ready(function() {
+                                      var schemaWrapper = {
+  "description" : "Internal Server Error",
+  "content" : {
+    "application/problem+json" : {
+      "schema" : {
+        "$ref" : "#/components/schemas/ErrorMessage"
+      },
+      "example" : {
+        "status" : "500",
+        "title" : "Internal Server Error",
+        "details" : "Internal Server Error occurred"
+      }
+    }
+  }
+};
+                                      var schema = findNode('schema',schemaWrapper).schema;
+                                      if (!schema) {
+                                        schema = schemaWrapper.schema;
+                                      }
+                                      if (schema == null) {
+                                        return;
+                                      }
+                                      if (schema.$ref != null) {
+                                        schema = defsParser.$refs.get(schema.$ref);
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
+                                      } else if (schema.items != null && schema.items.$ref != null) {
+                                        schema.items = defsParser.$refs.get(schema.items.$ref);
+                                      } else {
+                                        schemaWrapper.definitions = Object.assign({}, defs);
+                                        $RefParser.dereference(schemaWrapper).catch(function(err) {
+                                          console.log(err);
+                                        });
+                                      }
+
+                                      var view = new JSONSchemaView(schema, 3);
+                                      $('#responses-TopologyGroups-updateGroup-500-schema-data').val(JSON.stringify(schema));
+                                      var result = $('#responses-TopologyGroups-updateGroup-schema-500');
+                                      result.empty();
+                                      result.append(view.render());
+                                    });
+                                  </script>
+                                </div>
+                                <input id='responses-TopologyGroups-updateGroup-500-schema-data' type='hidden' value=''></input>
+                              </div>
+                            </div>
+                        </article>
+                      </div>
+                      <hr>
+                  </section>
           </div>
           <div id="footer">
             <div id="api-_footer">
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 @@
 <!doctype html>
 <html>
   <head>
-    <title>Topology and Inventory API</title>
+    <title>Topology Exposure and Inventory API</title>
     <style type="text/css">
       body {
 	font-family: Trebuchet MS, sans-serif;
@@ -179,31 +179,91 @@
     </style>
   </head>
   <body>
-  <h1>Topology and Inventory API</h1>
-    <div class="app-desc"><p>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.</p>
-<p>Topology and Inventory supports several topology domains. A domain is a grouping of network topology entities which handles topology data.</p>
-<p>Entities are enabling the modelling and storage of complex network infrastructure and relationships.</p>
-<p>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</p>
-<p>Topology and Inventory API provides the capabilities to fetch topology data. Using the filtering options, it is possible to define more specific query requests.</p>
+  <h1>Topology Exposure and Inventory API</h1>
+    <div class="app-desc"><p>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.</p>
+<p>Topology Exposure and Inventory supports several topology domains. A domain is a
+grouping of topology and inventory entities that handles topology and
+inventory data.</p>
+<p>Entities are enabling the modelling and storage of complex network
+infrastructure and relationships.</p>
+<p>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.</p>
+<p>Classifier (also known as tag or label) permits the association of a
+well defined user specified string with an entity or relationship.</p>
+<p>Decorators are user-defined attributes (key-value pairs) which can
+be applied to topology entities and relationships.</p>
+<p>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.</p>
 <h2>Querying simple entities</h2>
-<p>EntityType is used as the root of the queries (from here referred as RootObject).  Every other object, either <em>targetFilter</em> or <em>scopeFilter</em>, 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 <em>/attributes</em>.</p>
-<p>| 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 <em>targetFilter</em> parameter. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                          |   GNBDUFunction  |   /attributes(gNBId) <br/>    <strong>OR</strong> <br/> /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 <em>targetFilter</em> parameter. <br/> Case 1: The attributes must be separated by a comma &quot;,&quot; in case of using parenthesis &quot;()&quot;. <br/> Case 2: The attributes must be separated by a semicolon &quot;;&quot; in case of using slash &quot;/&quot;. <br/> Note: The attributes must be valid <em>targetFilter</em> of the object. |   GNBDUFunction  |   /attributes(gNBId, gNBIdLength)  <br/>    <strong>OR</strong> <br/> /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 <em>scopeFilter</em> parameter. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                       |   GNBDUFunction  |                                                                                       | /attributes[contains (@fdn, &quot;/SubNetwork=Ireland/&quot;)]                                                             | Unique set of ids of GNBDUFunctions, where fdn contains &quot;SubNetwork=Ireland&quot;                                      |
-| To return the ids for all instances of the entityType used in the query, that matches the given attributes in the <em>scopeFilter</em> parameter. <br/> Note: the entityType and the object in the <em>scopeFilter</em> parameter must match, and the attributes must be valid field or fields of the object.  The attributes must be separated by a comma &quot;,&quot;.                                                              |   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 <em>scopeFilter</em> parameter. A tag is a complete unit of <em>scopeFilter</em> parameter surrounded by square brackets. <br/> Note: The attributes must be valid field or fields of the object.                                                                                          |   GNBDUFunction  |                                                                                       | /attributes[@gNBIdLength=3 and @gNBId=111]  <br/>    <strong>OR</strong> <br/> /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      |</p>
+<p>The <em>entityTypeName</em> is used as the root of the queries (from here
+referred to as RootObject). Every other object, either in <em>targetFilter</em> or
+<em>scopeFilter</em>, 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 <em>/attributes</em>.</p>
+<p>| 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 <em>targetFilter</em> parameter. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                            | RAN        | GNBDUFunction  | /attributes(gNBId)              |                                                                                         | All gNBIds of every GNBDUFunction                                                                                                    |
+| To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the <em>targetFilter</em> parameter. <br/> Note: The attributes must be separated by a comma &quot;,&quot; when using parenthesis &quot;()&quot;.                                                                                                                                                                | 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 <em>scopeFilter</em> parameter.                                                                                                                                                                                                                                                         | RAN        | GNBDUFunction  |                                 | /sourceIds[contains (@item, 'SubNetwork=Ireland')]                                      | Unique set of ids of GNBDUFunctions, where sourceIds contains <em>SubNetwork=Ireland</em>                                                   |
+| To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the <em>scopeFilter</em> parameter. <br/> Note: The attributes must be separated by a <em>AND</em> or <em>OR</em>&quot;.                                                                                                                                                                                     | 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 <em>scopeFilter</em> parameter. A condition is a complete unit of <em>scopeFilter</em> parameter surrounded by square brackets. <br/> Note: Multiple conditions can be given in the scopeFilter separated by a semicolon &quot;;&quot; to represent AND, or a pipe symbol &quot;|&quot; 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 &quot;SubNetwork=Ireland&quot;      |</p>
 <h2>Querying connected entities</h2>
-<p>It is possible to get information about directly connected objects as well. If entityType is present in the <em>targetFilter</em> parameter, the query provides information about that entityType itself.</p>
-<p>| USE CASE                                                                                                                                                                                                                                                                                                                                                          | ENTITY TYPE   | TARGET FILTER                       | SCOPE FILTER                                              | QUERY RESULT                                                                                                                                      |
-|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
-| To return the ids for all instances of the entityType in the <em>targetFilter</em> 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 <em>targetFilter</em> 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 <em>scopeFilter</em> 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 <em>scopeFilter</em> parameter.                                                                                                                                                                            |  GNBDUFunction |                                     | /AntennaCapability <br/>    <strong>OR</strong> <br/> /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type                |</p>
+<p>The <em>entityTypeName</em> is used as the root of the queries.</p>
+<p>| 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 <em>id</em>.                    | REL_OAM_RAN | ENodeBFunction |              | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1']                                                                                                                                                                            | All ENodeBFunction entities that are managed by by the Managed Element <em>urn:3gpp:dn: ManagedElement=1</em>.                                                                                                                  |
+| To return the attributes for all instances of an entityTypeName related by one or more associations to other entities specified by their <em>id</em>. | 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 <em>1</em>, managed by the Managed Element <em>urn:3gpp:dn: ManagedElement=1</em> or <em>urn:3gpp:dn: ManagedElement=2</em>, and provides EuTranCell <em>urn:3gpp:dn: ManagedElement=1, EUtranCell=2</em>. |</p>
+<h2>Querying entities for relationships</h2>
+<p>The <em>entityTypeName</em> is used as the root of the queries.</p>
+<p>| 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 <em>urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1</em>.                                                                                                       |
+| 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 <em>MANAGEDELEMENT _MANAGES _GNBDUFUNCTION</em> relations for the GNBDUFunction with id <em>urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1</em>.                                                              |
+| 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 <em>MANAGEDELEMENT _MANAGES _GNBDUFUNCTION</em> relations for the GNBDUFunction with id <em>urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1</em> where the managed element is <em>urn:3gpp:dn: ManagedElement=1</em>. |</p>
+<h2>Querying on relationships</h2>
+<p>Here, the <em>relationshipTypeName</em> is used as the root of the queries.</p>
+<p>| 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 <em>managed-by-managedElement</em> to ManagedElement <em>urn:3gpp:dn: ManagedElement=1</em>. |</p>
+<h2>Querying on classifiers and decorators</h2>
+<p>The <em>domainName</em> is used as the root of the queries.</p>
+<p>| 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 &quot;gnbdu-function-model:Indoor&quot; 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 &quot;Ind&quot; 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 &quot;gnbdu-function-model:textdata = 'Stockholm'&quot; 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, &quot;&quot;)] | All the entity IDs that are exactly matched with &quot;gnbdu-function-model:textdata as key of the decorator in RAN domain. |</p>
+<p>The <em>entityName</em> is used as the root of the queries.</p>
+<p>| 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator is 'Stockholm'&quot; and where classifier exactly contains &quot;gnbdu-function-model:Indoor&quot;.         |
+| 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 &quot;Ind&quot;.                                                                                                                                        |
+| 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 &quot;gnbdu-function-model:textdata&quot; 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text &quot;Ind&quot;.  |</p>
+<p>The <em>relationshipTypeName</em> is used as the root of the queries.</p>
+<p>| 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator is 'Stockholm'&quot; and classifiers exactly contains &quot;gnbdu-function-model:Indoor&quot;. |
+| 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 &quot;Ind&quot;.                                                                                                                                              |
+| 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 &quot;gnbdu-function-model:textdata&quot; 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 &quot;gnbdu-function-model:textdata&quot; and the value of the decorator partially contains 'Stock' and classifiers partially contains the text &quot;Ind&quot;.   |</p>
 </div>
     <div class="app-desc">More information: <a href="https://openapi-generator.tech">https://openapi-generator.tech</a></div>
     <div class="app-desc">Contact Info: <a href="team@openapitools.org">team@openapitools.org</a></div>
@@ -220,19 +280,11 @@
   <div class="method-summary"></div>
   <h4><a href="#Classifiers">Classifiers</a></h4>
   <ul>
-  <li><a href="#updateClassifier"><code><span class="http-method">put</span> /classifiers</code></a></li>
-  </ul>
-  <h4><a href="#Collections">Collections</a></h4>
-  <ul>
-  <li><a href="#createCollection"><code><span class="http-method">post</span> /collections</code></a></li>
-  <li><a href="#deleteCollection"><code><span class="http-method">delete</span> /collections/{collectionId}</code></a></li>
-  <li><a href="#getAllCollections"><code><span class="http-method">get</span> /collections</code></a></li>
-  <li><a href="#getCollection"><code><span class="http-method">get</span> /collections/{collectionId}</code></a></li>
-  <li><a href="#updateCollection"><code><span class="http-method">put</span> /collections/{collectionId}</code></a></li>
+  <li><a href="#updateClassifier"><code><span class="http-method">post</span> /classifiers</code></a></li>
   </ul>
   <h4><a href="#Decorators">Decorators</a></h4>
   <ul>
-  <li><a href="#updateDecorator"><code><span class="http-method">put</span> /decorators</code></a></li>
+  <li><a href="#updateDecorator"><code><span class="http-method">post</span> /decorators</code></a></li>
   </ul>
   <h4><a href="#EntitiesAndRelationships">EntitiesAndRelationships</a></h4>
   <ul>
@@ -246,10 +298,6 @@
   <li><a href="#getTopologyEntityTypes"><code><span class="http-method">get</span> /domains/{domainName}/entity-types</code></a></li>
   <li><a href="#getTopologyRelationshipTypes"><code><span class="http-method">get</span> /domains/{domainName}/relationship-types</code></a></li>
   </ul>
-  <h4><a href="#GeoQuery">GeoQuery</a></h4>
-  <ul>
-  <li><a href="#geoQueryTopologyAcrossDomains"><code><span class="http-method">post</span> /geo-queries</code></a></li>
-  </ul>
   <h4><a href="#Schemas">Schemas</a></h4>
   <ul>
   <li><a href="#createSchema"><code><span class="http-method">post</span> /schemas</code></a></li>
@@ -257,14 +305,22 @@
   <li><a href="#getSchemaByName"><code><span class="http-method">get</span> /schemas/{schemaName}/content</code></a></li>
   <li><a href="#getSchemas"><code><span class="http-method">get</span> /schemas</code></a></li>
   </ul>
+  <h4><a href="#TopologyGroups">TopologyGroups</a></h4>
+  <ul>
+  <li><a href="#createGroup"><code><span class="http-method">post</span> /groups</code></a></li>
+  <li><a href="#deleteGroup"><code><span class="http-method">delete</span> /groups/{groupId}</code></a></li>
+  <li><a href="#getAllGroups"><code><span class="http-method">get</span> /groups</code></a></li>
+  <li><a href="#getGroup"><code><span class="http-method">get</span> /groups/{groupId}</code></a></li>
+  <li><a href="#updateGroup"><code><span class="http-method">put</span> /groups/{groupId}</code></a></li>
+  </ul>
 
   <h1><a name="Classifiers">Classifiers</a></h1>
   <div class="method"><a name="updateClassifier"/>
     <div class="method-path">
     <a class="up" href="#__Methods">Up</a>
-    <pre class="put"><code class="huge"><span class="http-method">put</span> /classifiers</code></pre></div>
+    <pre class="post"><code class="huge"><span class="http-method">post</span> /classifiers</code></pre></div>
     <div class="method-summary">Update entities and/or relationships with classifier(s). (<span class="nickname">updateClassifier</span>)</div>
-    <div class="method-notes">Update entities and/or relationships with classifier(s).</div>
+    <div class="method-notes">Update entities and/or relationships with classifier(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.</div>
 
 
     <h3 class="field-label">Consumes</h3>
@@ -341,471 +397,13 @@
         <a href="#ErrorMessage">ErrorMessage</a>
   </div> <!-- method -->
   <hr/>
-  <h1><a name="Collections">Collections</a></h1>
-  <div class="method"><a name="createCollection"/>
-    <div class="method-path">
-    <a class="up" href="#__Methods">Up</a>
-    <pre class="post"><code class="huge"><span class="http-method">post</span> /collections</code></pre></div>
-    <div class="method-summary">Create a collection. (<span class="nickname">createCollection</span>)</div>
-    <div class="method-notes">Create a collection.</div>
-
-
-    <h3 class="field-label">Consumes</h3>
-    This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
-    <ul>
-      <li><code>application/json</code></li>
-    </ul>
-
-    <h3 class="field-label">Request body</h3>
-    <div class="field-items">
-      <div class="param">Collection <a href="#Collection">Collection</a> (required)</div>
-
-      <div class="param-desc"><span class="param-type">Body Parameter</span> &mdash;  </div>
-
-    </div>  <!-- field-items -->
-
-    <h3 class="field-label">Request headers</h3>
-    <div class="field-items">
-      <div class="param">Accept (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-<div class="param">Content-Type (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-
-    </div>  <!-- field-items -->
-
-
-
-    <h3 class="field-label">Return type</h3>
-    <div class="return-type">
-      <a href="#CollectionResponse">CollectionResponse</a>
-      
-    </div>
-
-    <!--Todo: process Response Object and its headers, schema, examples -->
-
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/json</div>
-    <pre class="example"><code>{
-  "criteria" : {
-    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
-  },
-  "id" : "id",
-  "collectionName" : "collectionName"
-}</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-
-    <h3 class="field-label">Produces</h3>
-    This API call produces the following media types according to the <span class="header">Accept</span> request header;
-    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
-    <ul>
-      <li><code>application/json</code></li>
-      <li><code>application/problem+json</code></li>
-    </ul>
-
-    <h3 class="field-label">Responses</h3>
-    <h4 class="field-label">201</h4>
-    Created
-        <a href="#CollectionResponse">CollectionResponse</a>
-    <h4 class="field-label">400</h4>
-    Bad Request
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">401</h4>
-    Unauthorized
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">403</h4>
-    Forbidden
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">409</h4>
-    Conflict
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">500</h4>
-    Internal Server Error
-        <a href="#ErrorMessage">ErrorMessage</a>
-  </div> <!-- method -->
-  <hr/>
-  <div class="method"><a name="deleteCollection"/>
-    <div class="method-path">
-    <a class="up" href="#__Methods">Up</a>
-    <pre class="delete"><code class="huge"><span class="http-method">delete</span> /collections/{collectionId}</code></pre></div>
-    <div class="method-summary">Delete a collection with specified id. (<span class="nickname">deleteCollection</span>)</div>
-    <div class="method-notes">Delete a collection with specified id.</div>
-
-    <h3 class="field-label">Path parameters</h3>
-    <div class="field-items">
-      <div class="param">collectionId (required)</div>
-
-      <div class="param-desc"><span class="param-type">Path Parameter</span> &mdash;  default: null </div>
-    </div>  <!-- field-items -->
-
-
-
-    <h3 class="field-label">Request headers</h3>
-    <div class="field-items">
-      <div class="param">Accept (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-
-    </div>  <!-- field-items -->
-
-
-
-
-    <!--Todo: process Response Object and its headers, schema, examples -->
-
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-
-    <h3 class="field-label">Produces</h3>
-    This API call produces the following media types according to the <span class="header">Accept</span> request header;
-    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
-    <ul>
-      <li><code>application/problem+json</code></li>
-    </ul>
-
-    <h3 class="field-label">Responses</h3>
-    <h4 class="field-label">204</h4>
-    No Content
-        <a href="#"></a>
-    <h4 class="field-label">400</h4>
-    Bad Request
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">401</h4>
-    Unauthorized
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">403</h4>
-    Forbidden
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">404</h4>
-    Not Found
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">500</h4>
-    Internal Server Error
-        <a href="#ErrorMessage">ErrorMessage</a>
-  </div> <!-- method -->
-  <hr/>
-  <div class="method"><a name="getAllCollections"/>
-    <div class="method-path">
-    <a class="up" href="#__Methods">Up</a>
-    <pre class="get"><code class="huge"><span class="http-method">get</span> /collections</code></pre></div>
-    <div class="method-summary">Get all collections. (<span class="nickname">getAllCollections</span>)</div>
-    <div class="method-notes">Get all collections.</div>
-
-
-
-
-    <h3 class="field-label">Request headers</h3>
-    <div class="field-items">
-      <div class="param">Accept (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-
-    </div>  <!-- field-items -->
-
-    <h3 class="field-label">Query parameters</h3>
-    <div class="field-items">
-      <div class="param">offset (optional)</div>
-
-      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Pagination offset. default: 0 </div><div class="param">limit (optional)</div>
-
-      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Result limiter. default: 500 </div>
-    </div>  <!-- field-items -->
-
-
-    <h3 class="field-label">Return type</h3>
-    <div class="return-type">
-      <a href="#Collections">Collections</a>
-      
-    </div>
-
-    <!--Todo: process Response Object and its headers, schema, examples -->
-
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/json</div>
-    <pre class="example"><code>{
-  "next" : {
-    "href" : "href"
-  },
-  "last" : {
-    "href" : "href"
-  },
-  "prev" : {
-    "href" : "href"
-  },
-  "self" : {
-    "href" : "href"
-  },
-  "totalCount" : 0,
-  "items" : [ {
-    "criteria" : {
-      "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
-    },
-    "id" : "id",
-    "collectionName" : "collectionName"
-  }, {
-    "criteria" : {
-      "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
-    },
-    "id" : "id",
-    "collectionName" : "collectionName"
-  } ],
-  "first" : {
-    "href" : "href"
-  }
-}</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-
-    <h3 class="field-label">Produces</h3>
-    This API call produces the following media types according to the <span class="header">Accept</span> request header;
-    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
-    <ul>
-      <li><code>application/json</code></li>
-      <li><code>application/problem+json</code></li>
-    </ul>
-
-    <h3 class="field-label">Responses</h3>
-    <h4 class="field-label">200</h4>
-    OK
-        <a href="#Collections">Collections</a>
-    <h4 class="field-label">204</h4>
-    No Content
-        <a href="#"></a>
-    <h4 class="field-label">400</h4>
-    Bad Request
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">401</h4>
-    Unauthorized
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">403</h4>
-    Forbidden
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">500</h4>
-    Internal Server Error
-        <a href="#ErrorMessage">ErrorMessage</a>
-  </div> <!-- method -->
-  <hr/>
-  <div class="method"><a name="getCollection"/>
-    <div class="method-path">
-    <a class="up" href="#__Methods">Up</a>
-    <pre class="get"><code class="huge"><span class="http-method">get</span> /collections/{collectionId}</code></pre></div>
-    <div class="method-summary">Get a collection with specified id. (<span class="nickname">getCollection</span>)</div>
-    <div class="method-notes">Get a collection with specified id.</div>
-
-    <h3 class="field-label">Path parameters</h3>
-    <div class="field-items">
-      <div class="param">collectionId (required)</div>
-
-      <div class="param-desc"><span class="param-type">Path Parameter</span> &mdash;  default: null </div>
-    </div>  <!-- field-items -->
-
-
-
-    <h3 class="field-label">Request headers</h3>
-    <div class="field-items">
-      <div class="param">Accept (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-
-    </div>  <!-- field-items -->
-
-
-
-    <h3 class="field-label">Return type</h3>
-    <div class="return-type">
-      <a href="#CollectionResponse">CollectionResponse</a>
-      
-    </div>
-
-    <!--Todo: process Response Object and its headers, schema, examples -->
-
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/json</div>
-    <pre class="example"><code>{
-  "criteria" : {
-    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
-  },
-  "id" : "id",
-  "collectionName" : "collectionName"
-}</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-
-    <h3 class="field-label">Produces</h3>
-    This API call produces the following media types according to the <span class="header">Accept</span> request header;
-    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
-    <ul>
-      <li><code>application/json</code></li>
-      <li><code>application/problem+json</code></li>
-    </ul>
-
-    <h3 class="field-label">Responses</h3>
-    <h4 class="field-label">200</h4>
-    OK
-        <a href="#CollectionResponse">CollectionResponse</a>
-    <h4 class="field-label">400</h4>
-    Bad Request
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">401</h4>
-    Unauthorized
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">403</h4>
-    Forbidden
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">404</h4>
-    Not Found
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">500</h4>
-    Internal Server Error
-        <a href="#ErrorMessage">ErrorMessage</a>
-  </div> <!-- method -->
-  <hr/>
-  <div class="method"><a name="updateCollection"/>
-    <div class="method-path">
-    <a class="up" href="#__Methods">Up</a>
-    <pre class="put"><code class="huge"><span class="http-method">put</span> /collections/{collectionId}</code></pre></div>
-    <div class="method-summary">Update a collection. (<span class="nickname">updateCollection</span>)</div>
-    <div class="method-notes">Update a collection.</div>
-
-    <h3 class="field-label">Path parameters</h3>
-    <div class="field-items">
-      <div class="param">collectionId (required)</div>
-
-      <div class="param-desc"><span class="param-type">Path Parameter</span> &mdash;  default: null </div>
-    </div>  <!-- field-items -->
-
-    <h3 class="field-label">Consumes</h3>
-    This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
-    <ul>
-      <li><code>application/json</code></li>
-    </ul>
-
-    <h3 class="field-label">Request body</h3>
-    <div class="field-items">
-      <div class="param">Collection <a href="#Collection">Collection</a> (required)</div>
-
-      <div class="param-desc"><span class="param-type">Body Parameter</span> &mdash;  </div>
-
-    </div>  <!-- field-items -->
-
-    <h3 class="field-label">Request headers</h3>
-    <div class="field-items">
-      <div class="param">Accept (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-<div class="param">Content-Type (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-
-    </div>  <!-- field-items -->
-
-
-
-
-    <!--Todo: process Response Object and its headers, schema, examples -->
-
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-
-    <h3 class="field-label">Produces</h3>
-    This API call produces the following media types according to the <span class="header">Accept</span> request header;
-    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
-    <ul>
-      <li><code>application/problem+json</code></li>
-    </ul>
-
-    <h3 class="field-label">Responses</h3>
-    <h4 class="field-label">204</h4>
-    No Content
-        <a href="#"></a>
-    <h4 class="field-label">400</h4>
-    Bad Request
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">401</h4>
-    Unauthorized
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">403</h4>
-    Forbidden
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">409</h4>
-    Conflict
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">500</h4>
-    Internal Server Error
-        <a href="#ErrorMessage">ErrorMessage</a>
-  </div> <!-- method -->
-  <hr/>
   <h1><a name="Decorators">Decorators</a></h1>
   <div class="method"><a name="updateDecorator"/>
     <div class="method-path">
     <a class="up" href="#__Methods">Up</a>
-    <pre class="put"><code class="huge"><span class="http-method">put</span> /decorators</code></pre></div>
+    <pre class="post"><code class="huge"><span class="http-method">post</span> /decorators</code></pre></div>
     <div class="method-summary">Update entities and/or relationships with decorator(s). (<span class="nickname">updateDecorator</span>)</div>
-    <div class="method-notes">Update entities and/or relationships with decorator(s).</div>
+    <div class="method-notes">Update entities and/or relationships with decorator(s). The sum of the given entityIds and relationshipIds cannot exceed 100 by default.</div>
 
 
     <h3 class="field-label">Consumes</h3>
@@ -1025,7 +623,11 @@
 
     <h3 class="field-label">Query parameters</h3>
     <div class="field-items">
-      <div class="param">offset (optional)</div>
+      <div class="param">targetFilter (optional)</div>
+
+      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Use <em>targetFilter</em> to specify the entity type and attributes to be returned in the REST response. The value for <em>targetFilter</em> can also be a list of entity types and attributes. default: null </div><div class="param">scopeFilter (optional)</div>
+
+      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Use <em>scopeFilter</em> to specify the attributes to match on. The value for <em>scopeFilter</em> can also be a list of entity types and attributes. scopeFilter returns a boolean. default: null </div><div class="param">offset (optional)</div>
 
       <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Pagination offset. default: 0 </div><div class="param">limit (optional)</div>
 
@@ -1237,7 +839,7 @@
     <div class="field-items">
       <div class="param">Accept (required)</div>
 
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/yang.data+json </div>
 
     </div>  <!-- field-items -->
 
@@ -1536,7 +1138,7 @@
     <div class="field-items">
       <div class="param">Accept (required)</div>
 
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/yang.data+json </div>
 
     </div>  <!-- field-items -->
 
@@ -1819,110 +1421,13 @@
         <a href="#ErrorMessage">ErrorMessage</a>
   </div> <!-- method -->
   <hr/>
-  <h1><a name="GeoQuery">GeoQuery</a></h1>
-  <div class="method"><a name="geoQueryTopologyAcrossDomains"/>
-    <div class="method-path">
-    <a class="up" href="#__Methods">Up</a>
-    <pre class="post"><code class="huge"><span class="http-method">post</span> /geo-queries</code></pre></div>
-    <div class="method-summary">Geo query topology entity or entities  across topology domains. (<span class="nickname">geoQueryTopologyAcrossDomains</span>)</div>
-    <div class="method-notes">Geo query topology entity or entities across topology domains.</div>
-
-
-    <h3 class="field-label">Consumes</h3>
-    This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
-    <ul>
-      <li><code>application/json</code></li>
-    </ul>
-
-    <h3 class="field-label">Request body</h3>
-    <div class="field-items">
-      <div class="param">QueryMessage <a href="#QueryMessage">QueryMessage</a> (required)</div>
-
-      <div class="param-desc"><span class="param-type">Body Parameter</span> &mdash;  </div>
-
-    </div>  <!-- field-items -->
-
-    <h3 class="field-label">Request headers</h3>
-    <div class="field-items">
-      <div class="param">Accept (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-<div class="param">Content-Type (required)</div>
-
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
-
-    </div>  <!-- field-items -->
-
-    <h3 class="field-label">Query parameters</h3>
-    <div class="field-items">
-      <div class="param">offset (optional)</div>
-
-      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Pagination offset. default: 0 </div><div class="param">limit (optional)</div>
-
-      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Result limiter. default: 500 </div>
-    </div>  <!-- field-items -->
-
-
-    <h3 class="field-label">Return type</h3>
-    <div class="return-type">
-      
-      Object
-    </div>
-
-    <!--Todo: process Response Object and its headers, schema, examples -->
-
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-    <h3 class="field-label">Example data</h3>
-    <div class="example-data-content-type">Content-Type: application/problem+json</div>
-    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
-
-    <h3 class="field-label">Produces</h3>
-    This API call produces the following media types according to the <span class="header">Accept</span> request header;
-    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
-    <ul>
-      <li><code>application/json</code></li>
-      <li><code>application/problem+json</code></li>
-    </ul>
-
-    <h3 class="field-label">Responses</h3>
-    <h4 class="field-label">200</h4>
-    OK
-        <a href="#Object">Object</a>
-    <h4 class="field-label">400</h4>
-    Bad Request
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">401</h4>
-    Unauthorized
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">403</h4>
-    Forbidden
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">409</h4>
-    Conflict
-        <a href="#ErrorMessage">ErrorMessage</a>
-    <h4 class="field-label">500</h4>
-    Internal Server Error
-        <a href="#ErrorMessage">ErrorMessage</a>
-  </div> <!-- method -->
-  <hr/>
   <h1><a name="Schemas">Schemas</a></h1>
   <div class="method"><a name="createSchema"/>
     <div class="method-path">
     <a class="up" href="#__Methods">Up</a>
     <pre class="post"><code class="huge"><span class="http-method">post</span> /schemas</code></pre></div>
     <div class="method-summary">Create a new schema. (<span class="nickname">createSchema</span>)</div>
-    <div class="method-notes">Create a new schema.</div>
+    <div class="method-notes">Create a new schema. The request body shall contain the schema in YANG format.</div>
 
 
     <h3 class="field-label">Consumes</h3>
@@ -1939,7 +1444,7 @@
       <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
 <div class="param">Content-Type (required)</div>
 
-      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: multipart/form-data </div>
 
     </div>  <!-- field-items -->
 
@@ -2199,14 +1704,14 @@
   },
   "totalCount" : 0,
   "items" : [ {
-    "domain" : [ "domain", "domain" ],
+    "domain" : "domain",
     "name" : "name",
     "content" : {
       "href" : "href"
     },
     "revision" : "revision"
   }, {
-    "domain" : [ "domain", "domain" ],
+    "domain" : "domain",
     "name" : "name",
     "content" : {
       "href" : "href"
@@ -2256,6 +1761,464 @@
         <a href="#ErrorMessage">ErrorMessage</a>
   </div> <!-- method -->
   <hr/>
+  <h1><a name="TopologyGroups">TopologyGroups</a></h1>
+  <div class="method"><a name="createGroup"/>
+    <div class="method-path">
+    <a class="up" href="#__Methods">Up</a>
+    <pre class="post"><code class="huge"><span class="http-method">post</span> /groups</code></pre></div>
+    <div class="method-summary">Create group. (<span class="nickname">createGroup</span>)</div>
+    <div class="method-notes">Create group.</div>
+
+
+    <h3 class="field-label">Consumes</h3>
+    This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
+    <ul>
+      <li><code>application/json</code></li>
+    </ul>
+
+    <h3 class="field-label">Request body</h3>
+    <div class="field-items">
+      <div class="param">Group <a href="#Group">Group</a> (required)</div>
+
+      <div class="param-desc"><span class="param-type">Body Parameter</span> &mdash;  </div>
+
+    </div>  <!-- field-items -->
+
+    <h3 class="field-label">Request headers</h3>
+    <div class="field-items">
+      <div class="param">Accept (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+<div class="param">Content-Type (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+
+    </div>  <!-- field-items -->
+
+
+
+    <h3 class="field-label">Return type</h3>
+    <div class="return-type">
+      <a href="#GroupResponse">GroupResponse</a>
+      
+    </div>
+
+    <!--Todo: process Response Object and its headers, schema, examples -->
+
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/json</div>
+    <pre class="example"><code>{
+  "groupName" : "groupName",
+  "criteria" : {
+    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
+  },
+  "id" : "id"
+}</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+
+    <h3 class="field-label">Produces</h3>
+    This API call produces the following media types according to the <span class="header">Accept</span> request header;
+    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
+    <ul>
+      <li><code>application/json</code></li>
+      <li><code>application/problem+json</code></li>
+    </ul>
+
+    <h3 class="field-label">Responses</h3>
+    <h4 class="field-label">201</h4>
+    Created
+        <a href="#GroupResponse">GroupResponse</a>
+    <h4 class="field-label">400</h4>
+    Bad Request
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">401</h4>
+    Unauthorized
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">403</h4>
+    Forbidden
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">409</h4>
+    Conflict
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">500</h4>
+    Internal Server Error
+        <a href="#ErrorMessage">ErrorMessage</a>
+  </div> <!-- method -->
+  <hr/>
+  <div class="method"><a name="deleteGroup"/>
+    <div class="method-path">
+    <a class="up" href="#__Methods">Up</a>
+    <pre class="delete"><code class="huge"><span class="http-method">delete</span> /groups/{groupId}</code></pre></div>
+    <div class="method-summary">Delete a group with specified id. (<span class="nickname">deleteGroup</span>)</div>
+    <div class="method-notes">Delete a group with specified id.</div>
+
+    <h3 class="field-label">Path parameters</h3>
+    <div class="field-items">
+      <div class="param">groupId (required)</div>
+
+      <div class="param-desc"><span class="param-type">Path Parameter</span> &mdash;  default: null </div>
+    </div>  <!-- field-items -->
+
+
+
+    <h3 class="field-label">Request headers</h3>
+    <div class="field-items">
+      <div class="param">Accept (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+
+    </div>  <!-- field-items -->
+
+
+
+
+    <!--Todo: process Response Object and its headers, schema, examples -->
+
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+
+    <h3 class="field-label">Produces</h3>
+    This API call produces the following media types according to the <span class="header">Accept</span> request header;
+    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
+    <ul>
+      <li><code>application/problem+json</code></li>
+    </ul>
+
+    <h3 class="field-label">Responses</h3>
+    <h4 class="field-label">204</h4>
+    No Content
+        <a href="#"></a>
+    <h4 class="field-label">400</h4>
+    Bad Request
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">401</h4>
+    Unauthorized
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">403</h4>
+    Forbidden
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">404</h4>
+    Not Found
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">500</h4>
+    Internal Server Error
+        <a href="#ErrorMessage">ErrorMessage</a>
+  </div> <!-- method -->
+  <hr/>
+  <div class="method"><a name="getAllGroups"/>
+    <div class="method-path">
+    <a class="up" href="#__Methods">Up</a>
+    <pre class="get"><code class="huge"><span class="http-method">get</span> /groups</code></pre></div>
+    <div class="method-summary">Get all groups. (<span class="nickname">getAllGroups</span>)</div>
+    <div class="method-notes">Get all groups.</div>
+
+
+
+
+    <h3 class="field-label">Request headers</h3>
+    <div class="field-items">
+      <div class="param">Accept (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+
+    </div>  <!-- field-items -->
+
+    <h3 class="field-label">Query parameters</h3>
+    <div class="field-items">
+      <div class="param">offset (optional)</div>
+
+      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Pagination offset. default: 0 </div><div class="param">limit (optional)</div>
+
+      <div class="param-desc"><span class="param-type">Query Parameter</span> &mdash; Result limiter. default: 500 </div>
+    </div>  <!-- field-items -->
+
+
+    <h3 class="field-label">Return type</h3>
+    <div class="return-type">
+      <a href="#Groups">Groups</a>
+      
+    </div>
+
+    <!--Todo: process Response Object and its headers, schema, examples -->
+
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/json</div>
+    <pre class="example"><code>{
+  "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"
+  }
+}</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+
+    <h3 class="field-label">Produces</h3>
+    This API call produces the following media types according to the <span class="header">Accept</span> request header;
+    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
+    <ul>
+      <li><code>application/json</code></li>
+      <li><code>application/problem+json</code></li>
+    </ul>
+
+    <h3 class="field-label">Responses</h3>
+    <h4 class="field-label">200</h4>
+    OK
+        <a href="#Groups">Groups</a>
+    <h4 class="field-label">204</h4>
+    No Content
+        <a href="#"></a>
+    <h4 class="field-label">400</h4>
+    Bad Request
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">401</h4>
+    Unauthorized
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">403</h4>
+    Forbidden
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">500</h4>
+    Internal Server Error
+        <a href="#ErrorMessage">ErrorMessage</a>
+  </div> <!-- method -->
+  <hr/>
+  <div class="method"><a name="getGroup"/>
+    <div class="method-path">
+    <a class="up" href="#__Methods">Up</a>
+    <pre class="get"><code class="huge"><span class="http-method">get</span> /groups/{groupId}</code></pre></div>
+    <div class="method-summary">Get a group with specified id. (<span class="nickname">getGroup</span>)</div>
+    <div class="method-notes">Get a Group with specified id.</div>
+
+    <h3 class="field-label">Path parameters</h3>
+    <div class="field-items">
+      <div class="param">groupId (required)</div>
+
+      <div class="param-desc"><span class="param-type">Path Parameter</span> &mdash;  default: null </div>
+    </div>  <!-- field-items -->
+
+
+
+    <h3 class="field-label">Request headers</h3>
+    <div class="field-items">
+      <div class="param">Accept (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+
+    </div>  <!-- field-items -->
+
+
+
+    <h3 class="field-label">Return type</h3>
+    <div class="return-type">
+      <a href="#GroupResponse">GroupResponse</a>
+      
+    </div>
+
+    <!--Todo: process Response Object and its headers, schema, examples -->
+
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/json</div>
+    <pre class="example"><code>{
+  "groupName" : "groupName",
+  "criteria" : {
+    "resourceInstances" : [ "resourceInstances", "resourceInstances" ]
+  },
+  "id" : "id"
+}</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+
+    <h3 class="field-label">Produces</h3>
+    This API call produces the following media types according to the <span class="header">Accept</span> request header;
+    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
+    <ul>
+      <li><code>application/json</code></li>
+      <li><code>application/problem+json</code></li>
+    </ul>
+
+    <h3 class="field-label">Responses</h3>
+    <h4 class="field-label">200</h4>
+    OK
+        <a href="#GroupResponse">GroupResponse</a>
+    <h4 class="field-label">400</h4>
+    Bad Request
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">401</h4>
+    Unauthorized
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">403</h4>
+    Forbidden
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">404</h4>
+    Not Found
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">500</h4>
+    Internal Server Error
+        <a href="#ErrorMessage">ErrorMessage</a>
+  </div> <!-- method -->
+  <hr/>
+  <div class="method"><a name="updateGroup"/>
+    <div class="method-path">
+    <a class="up" href="#__Methods">Up</a>
+    <pre class="put"><code class="huge"><span class="http-method">put</span> /groups/{groupId}</code></pre></div>
+    <div class="method-summary">Update a Group. (<span class="nickname">updateGroup</span>)</div>
+    <div class="method-notes">Update a Group.</div>
+
+    <h3 class="field-label">Path parameters</h3>
+    <div class="field-items">
+      <div class="param">groupId (required)</div>
+
+      <div class="param-desc"><span class="param-type">Path Parameter</span> &mdash;  default: null </div>
+    </div>  <!-- field-items -->
+
+    <h3 class="field-label">Consumes</h3>
+    This API call consumes the following media types via the <span class="header">Content-Type</span> request header:
+    <ul>
+      <li><code>application/json</code></li>
+    </ul>
+
+    <h3 class="field-label">Request body</h3>
+    <div class="field-items">
+      <div class="param">Group <a href="#Group">Group</a> (required)</div>
+
+      <div class="param-desc"><span class="param-type">Body Parameter</span> &mdash;  </div>
+
+    </div>  <!-- field-items -->
+
+    <h3 class="field-label">Request headers</h3>
+    <div class="field-items">
+      <div class="param">Accept (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+<div class="param">Content-Type (required)</div>
+
+      <div class="param-desc"><span class="param-type">Header Parameter</span> &mdash;  default: application/json </div>
+
+    </div>  <!-- field-items -->
+
+
+
+
+    <!--Todo: process Response Object and its headers, schema, examples -->
+
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+    <h3 class="field-label">Example data</h3>
+    <div class="example-data-content-type">Content-Type: application/problem+json</div>
+    <pre class="example"><code>Custom MIME type example not yet supported: application/problem+json</code></pre>
+
+    <h3 class="field-label">Produces</h3>
+    This API call produces the following media types according to the <span class="header">Accept</span> request header;
+    the media type will be conveyed by the <span class="header">Content-Type</span> response header.
+    <ul>
+      <li><code>application/problem+json</code></li>
+    </ul>
+
+    <h3 class="field-label">Responses</h3>
+    <h4 class="field-label">204</h4>
+    No Content
+        <a href="#"></a>
+    <h4 class="field-label">400</h4>
+    Bad Request
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">401</h4>
+    Unauthorized
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">403</h4>
+    Forbidden
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">409</h4>
+    Conflict
+        <a href="#ErrorMessage">ErrorMessage</a>
+    <h4 class="field-label">500</h4>
+    Internal Server Error
+        <a href="#ErrorMessage">ErrorMessage</a>
+  </div> <!-- method -->
+  <hr/>
 
   <h2><a name="__Models">Models</a></h2>
   [ Jump to <a href="#__Methods">Methods</a> ]
@@ -2263,10 +2226,6 @@
   <h3>Table of Contents</h3>
   <ol>
     <li><a href="#Classifier"><code>Classifier</code> - Classifier</a></li>
-    <li><a href="#Collection"><code>Collection</code> - </a></li>
-    <li><a href="#CollectionResponse"><code>CollectionResponse</code> - </a></li>
-    <li><a href="#CollectionResponse_criteria"><code>CollectionResponse_criteria</code> - </a></li>
-    <li><a href="#Collections"><code>Collections</code> - Collections</a></li>
     <li><a href="#Decorator"><code>Decorator</code> - Decorator</a></li>
     <li><a href="#Domains"><code>Domains</code> - Domains</a></li>
     <li><a href="#Domains_items_inner"><code>Domains_items_inner</code> - </a></li>
@@ -2276,8 +2235,11 @@
     <li><a href="#EntityTypes"><code>EntityTypes</code> - EntityTypes</a></li>
     <li><a href="#EntityTypes_items_inner"><code>EntityTypes_items_inner</code> - </a></li>
     <li><a href="#ErrorMessage"><code>ErrorMessage</code> - Error</a></li>
+    <li><a href="#Group"><code>Group</code> - </a></li>
+    <li><a href="#GroupResponse"><code>GroupResponse</code> - </a></li>
+    <li><a href="#GroupResponse_criteria"><code>GroupResponse_criteria</code> - </a></li>
+    <li><a href="#Groups"><code>Groups</code> - Groups</a></li>
     <li><a href="#Href"><code>Href</code> - Href</a></li>
-    <li><a href="#QueryMessage"><code>QueryMessage</code> - Query</a></li>
     <li><a href="#RelationshipTypes"><code>RelationshipTypes</code> - RelationshipTypes</a></li>
     <li><a href="#RelationshipTypes_items_inner"><code>RelationshipTypes_items_inner</code> - </a></li>
     <li><a href="#RelationshipsResponseMessage"><code>RelationshipsResponseMessage</code> - Relationships</a></li>
@@ -2294,57 +2256,19 @@
       <div class="param">operation (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
         <div class="param-enum-header">Enum:</div>
         <div class="param-enum">merge</div><div class="param-enum">delete</div>
-<div class="param">classifier (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
+<div class="param">classifiers (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
 <div class="param">entityIds (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
 <div class="param">relationshipIds (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
     </div>  <!-- field-items -->
   </div>
   <div class="model">
-    <h3><a name="Collection"><code>Collection</code> - </a> <a class="up" href="#__Models">Up</a></h3>
-    <div class='model-description'></div>
-    <div class="field-items">
-      <div class="param">collectionName (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
-<div class="param">criteria (optional)</div><div class="param-desc"><span class="param-type"><a href="#TopologySelection">TopologySelection</a></span>  </div>
-    </div>  <!-- field-items -->
-  </div>
-  <div class="model">
-    <h3><a name="CollectionResponse"><code>CollectionResponse</code> - </a> <a class="up" href="#__Models">Up</a></h3>
-    <div class='model-description'></div>
-    <div class="field-items">
-      <div class="param">id (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
-<div class="param">collectionName (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
-<div class="param">criteria (optional)</div><div class="param-desc"><span class="param-type"><a href="#CollectionResponse_criteria">CollectionResponse_criteria</a></span>  </div>
-    </div>  <!-- field-items -->
-  </div>
-  <div class="model">
-    <h3><a name="CollectionResponse_criteria"><code>CollectionResponse_criteria</code> - </a> <a class="up" href="#__Models">Up</a></h3>
-    <div class='model-description'></div>
-    <div class="field-items">
-      <div class="param">resourceInstances (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
-<div class="param">resourceQuery (optional)</div><div class="param-desc"><span class="param-type"><a href="#DynamicSelection_resourceQuery">DynamicSelection_resourceQuery</a></span>  </div>
-    </div>  <!-- field-items -->
-  </div>
-  <div class="model">
-    <h3><a name="Collections"><code>Collections</code> - Collections</a> <a class="up" href="#__Models">Up</a></h3>
-    <div class='model-description'></div>
-    <div class="field-items">
-      <div class="param">items (optional)</div><div class="param-desc"><span class="param-type"><a href="#CollectionResponse">array[CollectionResponse]</a></span>  </div>
-<div class="param">self (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
-<div class="param">first (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
-<div class="param">prev (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
-<div class="param">next (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
-<div class="param">last (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
-<div class="param">totalCount (optional)</div><div class="param-desc"><span class="param-type"><a href="#integer">Integer</a></span>  </div>
-    </div>  <!-- field-items -->
-  </div>
-  <div class="model">
     <h3><a name="Decorator"><code>Decorator</code> - Decorator</a> <a class="up" href="#__Models">Up</a></h3>
     <div class='model-description'></div>
     <div class="field-items">
       <div class="param">operation (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
         <div class="param-enum-header">Enum:</div>
         <div class="param-enum">merge</div><div class="param-enum">delete</div>
-<div class="param">decorators (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">map[String, String]</a></span>  </div>
+<div class="param">decorators (optional)</div><div class="param-desc"><span class="param-type"><a href="#AnyType">map[String, oas_any_type_not_mapped]</a></span> Decorators must be defined in schema before use. Data type of a decorator is restricted as defined by it's schema. </div>
 <div class="param">entityIds (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
 <div class="param">relationshipIds (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
     </div>  <!-- field-items -->
@@ -2432,6 +2356,44 @@
     </div>  <!-- field-items -->
   </div>
   <div class="model">
+    <h3><a name="Group"><code>Group</code> - </a> <a class="up" href="#__Models">Up</a></h3>
+    <div class='model-description'></div>
+    <div class="field-items">
+      <div class="param">groupName (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
+<div class="param">criteria (optional)</div><div class="param-desc"><span class="param-type"><a href="#TopologySelection">TopologySelection</a></span>  </div>
+    </div>  <!-- field-items -->
+  </div>
+  <div class="model">
+    <h3><a name="GroupResponse"><code>GroupResponse</code> - </a> <a class="up" href="#__Models">Up</a></h3>
+    <div class='model-description'></div>
+    <div class="field-items">
+      <div class="param">id (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
+<div class="param">groupName (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
+<div class="param">criteria (optional)</div><div class="param-desc"><span class="param-type"><a href="#GroupResponse_criteria">GroupResponse_criteria</a></span>  </div>
+    </div>  <!-- field-items -->
+  </div>
+  <div class="model">
+    <h3><a name="GroupResponse_criteria"><code>GroupResponse_criteria</code> - </a> <a class="up" href="#__Models">Up</a></h3>
+    <div class='model-description'></div>
+    <div class="field-items">
+      <div class="param">resourceInstances (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
+<div class="param">resourceQuery (optional)</div><div class="param-desc"><span class="param-type"><a href="#DynamicSelection_resourceQuery">DynamicSelection_resourceQuery</a></span>  </div>
+    </div>  <!-- field-items -->
+  </div>
+  <div class="model">
+    <h3><a name="Groups"><code>Groups</code> - Groups</a> <a class="up" href="#__Models">Up</a></h3>
+    <div class='model-description'></div>
+    <div class="field-items">
+      <div class="param">items (optional)</div><div class="param-desc"><span class="param-type"><a href="#GroupResponse">array[GroupResponse]</a></span>  </div>
+<div class="param">self (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
+<div class="param">first (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
+<div class="param">prev (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
+<div class="param">next (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
+<div class="param">last (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
+<div class="param">totalCount (optional)</div><div class="param-desc"><span class="param-type"><a href="#integer">Integer</a></span>  </div>
+    </div>  <!-- field-items -->
+  </div>
+  <div class="model">
     <h3><a name="Href"><code>Href</code> - Href</a> <a class="up" href="#__Models">Up</a></h3>
     <div class='model-description'></div>
     <div class="field-items">
@@ -2439,13 +2401,6 @@
     </div>  <!-- field-items -->
   </div>
   <div class="model">
-    <h3><a name="QueryMessage"><code>QueryMessage</code> - Query</a> <a class="up" href="#__Models">Up</a></h3>
-    <div class='model-description'></div>
-    <div class="field-items">
-      <div class="param">query (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
-    </div>  <!-- field-items -->
-  </div>
-  <div class="model">
     <h3><a name="RelationshipTypes"><code>RelationshipTypes</code> - RelationshipTypes</a> <a class="up" href="#__Models">Up</a></h3>
     <div class='model-description'></div>
     <div class="field-items">
@@ -2484,7 +2439,7 @@
     <div class='model-description'></div>
     <div class="field-items">
       <div class="param">name (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
-<div class="param">domain (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">array[String]</a></span>  </div>
+<div class="param">domain (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
 <div class="param">revision (optional)</div><div class="param-desc"><span class="param-type"><a href="#string">String</a></span>  </div>
 <div class="param">content (optional)</div><div class="param-desc"><span class="param-type"><a href="#Href">Href</a></span>  </div>
     </div>  <!-- field-items -->
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.                                                                                                                                                                                                                                                                                                                                       |&ensp;  GNBDUFunction  |                                                                                        |                                                                                                                 | All ids of every GNBDUFunction                                                                                    |\n| To return all attributes of every instance of the entityType used in the query.                                                                                                                                                                                                                                                                                                                                |&ensp;  GNBDUFunction  |&ensp;  /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                          |&ensp;  GNBDUFunction  |&ensp;  /attributes(gNBId) <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Case 1: The attributes must be separated by a comma \",\" in case of using parenthesis \"()\". <br/> Case 2: The attributes must be separated by a semicolon \";\" in case of using slash \"/\". <br/> Note: The attributes must be valid *targetFilter* of the object. |&ensp;  GNBDUFunction  |&ensp;  /attributes(gNBId, gNBIdLength)  <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                       |&ensp;  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. <br/> 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 \",\".                                                              |&ensp;  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. <br/> Note: The attributes must be valid field or fields of the object.                                                                                          |&ensp;  GNBDUFunction  |                                                                                       | /attributes[@gNBIdLength=3 and @gNBId=111]  <br/> &emsp;&ensp; **OR** <br/> /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.                                                                                                                                                                                                                    |&ensp; GNBDUFunction |&ensp; /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.                                                                                                                                                                                                                           |&ensp; GNBDUFunction |&ensp; /NRCellDU ;&ensp; /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.                                                                                                                                                                                             |&ensp; 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.                                                                                                                                                                            |&ensp; GNBDUFunction |                                     | /AntennaCapability <br/> &emsp;&ensp; **OR** <br/> /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. <br/> 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. <br/> Note: The attributes must be separated by a comma \",\" when using parenthesis \"()\".                                                                                                                                                                | RAN        | GNBDUFunction  | /attributes(gNBId, gNBIdLength) |                                                                                         | All gNBIds and gNBIdLengths of every GNBDUFunction                                                                                   |\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. <br/> Note: The attributes must be separated by a *AND* or *OR*\".                                                                                                                                                                                     | RAN        | GNBDUFunction  |                                 | /attributes [@gNBIdLength=3 and @gNBId=111]                                             | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111                                         |\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. <br/> Note: Multiple conditions can be given in the scopeFilter separated by a semicolon \";\" to represent AND, or a pipe symbol \"&#124;\" to represent OR. | RAN        | GNBDUFunction  |                                 | /attributes [@gNBIdLength=3]  &#124; /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'] &#124;  /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"
@@ -28,9 +28,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"
@@ -651,6 +648,36 @@
           },
           "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,
           "in" : "query",
@@ -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" : {
+      "StaticGroupExample" : {
         "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" : {
-        "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 @@
   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.                                                                                                                                                                                                                                                                                                                                       |&ensp;  GNBDUFunction  |                                                                                        |                                                                                                                 | All ids of every GNBDUFunction                                                                                    |
-    | To return all attributes of every instance of the entityType used in the query.                                                                                                                                                                                                                                                                                                                                |&ensp;  GNBDUFunction  |&ensp;  /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                          |&ensp;  GNBDUFunction  |&ensp;  /attributes(gNBId) <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Case 1: The attributes must be separated by a comma "," in case of using parenthesis "()". <br/> Case 2: The attributes must be separated by a semicolon ";" in case of using slash "/". <br/> Note: The attributes must be valid *targetFilter* of the object. |&ensp;  GNBDUFunction  |&ensp;  /attributes(gNBId, gNBIdLength)  <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                       |&ensp;  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. <br/> 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 ",".                                                              |&ensp;  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. <br/> Note: The attributes must be valid field or fields of the object.                                                                                          |&ensp;  GNBDUFunction  |                                                                                       | /attributes[@gNBIdLength=3 and @gNBId=111]  <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                            | RAN        | GNBDUFunction  | /attributes(gNBId)              |                                                                                         | All gNBIds of every GNBDUFunction                                                                                                    |
+    | To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the *targetFilter* parameter. <br/> Note: The attributes must be separated by a comma "," when using parenthesis "()".                                                                                                                                                                | RAN        | GNBDUFunction  | /attributes(gNBId, gNBIdLength) |                                                                                         | All gNBIds and gNBIdLengths of every GNBDUFunction                                                                                   |
+    | To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the *scopeFilter* parameter.                                                                                                                                                                                                                                                         | RAN        | GNBDUFunction  |                                 | /sourceIds[contains (@item, 'SubNetwork=Ireland')]                                      | Unique set of ids of GNBDUFunctions, where sourceIds contains *SubNetwork=Ireland*                                                   |
+    | To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the *scopeFilter* parameter. <br/> Note: The attributes must be separated by a *AND* or *OR*".                                                                                                                                                                                     | RAN        | GNBDUFunction  |                                 | /attributes [@gNBIdLength=3 and @gNBId=111]                                             | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111                                         |
+    | To return the ids for all instances of the entityTypeName used in the query, that satisfies one of the conditions in the *scopeFilter* parameter. A condition is a complete unit of *scopeFilter* parameter surrounded by square brackets. <br/> Note: Multiple conditions can be given in the scopeFilter separated by a semicolon ";" to represent AND, or a pipe symbol "&#124;" to represent OR. | RAN        | GNBDUFunction  |                                 | /attributes [@gNBIdLength=3]  &#124; /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                                                                                                                                                                                                                                                                                                                                                          | 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.                                                                                                                                                                                                                    |&ensp; GNBDUFunction |&ensp; /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.                                                                                                                                                                                                                           |&ensp; GNBDUFunction |&ensp; /NRCellDU ;&ensp; /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.                                                                                                                                                                                             |&ensp; 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.                                                                                                                                                                            |&ensp; GNBDUFunction |                                     | /AntennaCapability <br/> &emsp;&ensp; **OR** <br/> /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type                |
+    | 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'] &#124;  /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as *1*, managed by the Managed Element *urn:3gpp:dn: ManagedElement=1* or *urn:3gpp:dn: ManagedElement=2*, and provides EuTranCell *urn:3gpp:dn: ManagedElement=1, EUtranCell=2*. |
+
+    ## Querying entities for relationships
+    The *entityTypeName* is used as the root of the queries.
+
+    | Use case                                                                                                           | domainName  | entityTypeName | entityId                                       | targetFilter                            | scopeFilter                                                        | Query result                                                                                                                                                                                        |
+    |:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | To return the relationships for a given entity specified by its id.                                                | RAN         | GNBDUFunction  | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 |                                         |                                                                    | All relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*.                                                                                                       |
+    | To return specific relationships for a given entity specified by its id.                                           | REL_OAM_RAN | GNBDUFunction  | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION |                                                                    | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*.                                                              |
+    | To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction  | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 |                                         | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. |
+
+    ## Querying on relationships
+    Here, the *relationshipTypeName* is used as the root of the queries.
+
+    | Use case                                                                                                 | domainName  | relationshipTypeName                    | targetFilter | scopeFilter                                                      | Query result                                                                                                                                                 |
+    |:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | To return all relationships for a specified relationship type.                                           | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION |              |                                                                  | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships.                                                                                                     |
+    | To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION |              | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association *managed-by-managedElement* to ManagedElement *urn:3gpp:dn: ManagedElement=1*. |
+    
+    ## Querying on classifiers and decorators
+    The *domainName* is used as the root of the queries.
+
+    | Use case                                                                                                                                          | domainName | targetFilter | scopeFilter                                               | Query result                                                                                                           |
+    |:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------|
+    | Return all related entity IDs that are exactly matched with the specified classifier with given domain name.                                      | RAN        |              | /classifiers[@item = 'gnbdu-function-model:Indoor']       | All the entity IDs that are classified with "gnbdu-function-model:Indoor" in RAN domain.                               |
+    | Return all related entity IDs that are partially matched for the given classifier with given domain name.                                         | RAN        |              | /classifiers[contains(@item, 'Ind')]                      | All the entity IDs that are partially matched with "Ind" in RAN domain.                                                |
+    | Return all related entity IDs that are exactly matched with the key-value pair that specified decorators with given domain name.                  | RAN        |              | /decorators[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata = 'Stockholm'" in RAN domain.          |
+    | Return all related entity IDs that are exactly matched with key parameter where the value of the decorator is unknown with given domain name.     | RAN        |              | /decorators[contains(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. |
+
+    The *entityName* is used as the root of the queries.
+    
+    | Use case                                                                                                                                                                                         | entityName   | relationshipTypeName | targetFilter              | scopeFilter                                                                                                     | Query result                                                                                                                                                                                               |
+    |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | Return all related entity IDs and classifiers.                                                                                                                                                   | NRCellDU     |                      | /classifiers              |                                                                                                                 | All NRCellDU IDs and classifiers.                                                                                                                                                                          |
+    | Return all related entity IDs and decorators.                                                                                                                                                    | NRCellDU     |                      | /decorators               |                                                                                                                 | All NRCellDU IDs and decorators.                                                                                                                                                                           |
+    | Return all related entity IDs that are exact match for the given classifiers and decorators.                                                                                                     | NRCellDU     |                      |                           | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-function-model:Indoor".         |
+    | Return all related entity IDs and classifiers that are partially matched for the given classifier.                                                                                               | NRCellDU     |                      | /classifiers              | /classifiers[contains(@item, 'Ind')]                                                                            | All NRCellDU IDs and classifiers partially contains the text "Ind".                                                                                                                                        |
+    | Return all related entity IDs and decorators where key is a exact match and value is partially match.                                                                                            | NRCellDU     |                      | /decorators               | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')]                                                   | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'.                                                               |
+    | Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU     |                      | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')]             | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind".  |
+    
+     The *relationshipTypeName* is used as the root of the queries.
+    
+    | Use case                                                                                                                                                                                               | entityName | relationshipTypeName                    | targetFilter              | scopeFilter                                                                                                                       | Query result                                                                                                                                                                                                                                |
+    |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | Return all related relationships IDs and classifiers.                                                                                                                                                  |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers              |                                                                                                                                   | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers.                                                                                                                                                                            |
+    | Return all related relationships IDs and decorators.                                                                                                                                                   |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators               |                                                                                                                                   | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators.                                                                                                                                                                             |
+    | Return all related relationship IDs that are exact match for the given classifier and decorators.                                                                                                      |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION |                           | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm']                   | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". |
+    | Return all related relationships IDs and classifiers that are partially matched for the given classifier.                                                                                              |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers              | /classifiers[contains(@item, 'Ind')]                                                                                              | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind".                                                                                                                                              |
+    | Return all related relationships IDs and decorators where key is a exact match and value is partially match.                                                                                           |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators               | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')]                                                                    | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'.                                                                    |
+    | Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')]                              | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind".   |
 
   version: 0.11.0
-  title: Topology 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 @@
     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 @@
       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 @@
       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 @@
       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 @@
 
   /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 @@
 
   /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 @@
       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 @@
 
   /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 @@
 
   /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 @@
 
   /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 @@
 
   /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 @@
       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 @@
       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 @@
       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 @@
         '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 @@
           $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 @@
         '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 @@
           $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 @@
           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 @@
         '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 @@
           $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 @@
           $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 @@
         '500':
           $ref: '#/components/responses/InternalServerError'
 
+
 components:
   schemas:
     Classifier:
@@ -773,9 +812,9 @@
         operation:
           type: string
           enum:
-          - merge
-          - delete
-        classifier:
+            - merge
+            - delete
+        classifiers:
           type: array
           items:
             type: string
@@ -787,32 +826,32 @@
           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 @@
           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 @@
               type: object
           required:
             - url
+
     Decorator:
       type: object
       title: Decorator
@@ -861,12 +901,12 @@
         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 @@
           type: string
           description: multipartFile
           format: binary
-    QueryMessage:
-      type: object
-      title: Query
-      properties:
-        query:
-          type: string
     Schema:
       type: object
       title: Schema
@@ -1032,9 +1066,7 @@
         name:
           type: string
         domain:
-          type: array
-          items:
-            type: string
+          type: string
         revision:
           type: string
         content:
@@ -1108,7 +1140,7 @@
           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 @@
       content:
         application/problem+json:
           schema:
-            $ref: "#/components/schemas/ErrorMessage"
+            $ref: '#/components/schemas/ErrorMessage'
           example:
             status: '500'
             title: Internal Server Error
@@ -1128,7 +1160,7 @@
       content: {}
 
   parameters:
-    acceptInHeader:
+    acceptJsonInHeader:
       name: Accept
       in: header
       required: true
@@ -1136,7 +1168,23 @@
         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 @@
       schema:
         type: string
         default: "o-ran-smo-teiv-ran"
-    collectionIdInPath:
-      name: collectionId
+    groupIdInPath:
+      name: groupId
       in: path
       required: true
       schema:
@@ -1219,7 +1267,9 @@
           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 @@
           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
+          - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1"
+            attributes:
+              gNBDUId: 11
+              dUpLMNId:
+                mcc: 110
+                mnc: 210
+              gNBId: 21
+              gNBIdLength: 2
+            decorators:
+              location: Stockholm
+            classifiers:
+              - Rural
+            sourceIds:
+              - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1"
+              - "urn:cmHandle:395221E080CCF0FD1924103B15873814"
+            metadata:
+              trustLevel: RELIABLE
     EntitiesResponseExample:
       value:
         items:
-        - o-ran-smo-teiv-ran:NRCellDU:
-          - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
-            attributes:
-              cellLocalId: 4589
-              nCI: 1
-              nRPCI: 12
-              nRTAC: 310
-            decorators:
-              location: Stockholm
-            classifiers:
-            - Rural
-            sourceIds:
-            - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
-            - "urn:cmHandle:395221E080CCF0FD1924103B15873814"
-            metadata:
-              trustLevel: RELIABLE
-        - o-ran-smo-teiv-ran:NRCellDU:
-          - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
-            attributes:
-              cellLocalId: 4559
-              nRPCI: 32
-              nRTAC: 510
-            decorators:
-              location: Stockholm
-            classifiers:
-            - Rural
-            sourceIds:
-            - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
-            - "urn:cmHandle:395221E080CCF0FD1924103B15873814"
-            metadata:
-              trustLevel: RELIABLE
+          - 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
+              - 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
-            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:
+    StaticGroupExample:
       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:
-      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-cloud
-            domain:
-              - RAN_CLOUD
-            revision: '2021-05-19'
+              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-cloud/content'
-          - name: o-ran-smo-teiv-oam
-            domain:
-              - RAN_OAM'
-            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-oam/content'
-          - name: o-ran-smo-teiv-common-yang-types
-            domain:
-              []
-            revision: '2021-07-04'
+              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-common-yang-types/content'
-          - name: o-ran-smo-teiv-common-yang-extensions
-            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-extensions/content'
+              href: "/schemas/o-ran-smo-teiv-rel-equipment-ran/content"
+          - name: "o-ran-smo-teiv-common-yang-types"
+            domain: ""
+            revision: "2024-05-24"
+            content:
+              href: "/schemas/o-ran-smo-teiv-common-yang-types/content"
+          - name: "o-ran-smo-teiv-common-yang-extensions"
+            domain: ""
+            revision: "2024-05-24"
+            content:
+              href: "/schemas/o-ran-smo-teiv-common-yang-extensions/content"
+          - name: "ietf-geo-location"
+            domain: ""
+            revision: "2022-02-11"
+            content:
+              href: "/schemas/ietf-geo-location/content"
+          - name: "_3gpp-common-yang-extensions"
+            domain: ""
+            revision: "2019-06-23"
+            content:
+              href: "/schemas/_3gpp-common-yang-extensions/content"
+          - name: "_3gpp-common-yang-types"
+            domain: ""
+            revision: "2023-11-06"
+            content:
+              href: "/schemas/_3gpp-common-yang-types/content"
+          - name: "ietf-yang-types"
+            domain: ""
+            revision: "2013-07-15"
+            content:
+              href: "/schemas/ietf-yang-types/content"
+          - name: "ietf-inet-types"
+            domain: ""
+            revision: "2013-07-15"
+            content:
+              href: "/schemas/ietf-inet-types/content"
         self:
-          href: '/schemas?offset=0&limit=500'
+          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/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java b/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java
index b2efcf8..87caa91 100644
--- a/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java
+++ b/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java
@@ -92,6 +92,7 @@
             {
                 put("string", TEXT);
                 put("uint32", BIGINT);
+                put("int32", BIGINT);
                 put("or-teiv-types:_3GPP_FDN_Type", TEXT);
                 put("enumeration", TEXT);
                 put("types3gpp:PLMNId", JSONB);
@@ -100,6 +101,7 @@
                 put("[uses types3gpp:PLMNId]", JSONB);
                 put("geo:geo-location", "geography");
                 put("uint64", BIGINT);
+                put("int64", BIGINT);
                 put("decimal64", DECIMAL);
                 put("[uses or-teiv-types:CM_ID]", JSONB);
             }
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 @@
 
 @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 @@
     @Override
     @Timed("ties_exposure_http_get_relationships_by_entity_id_seconds")
     public ResponseEntity<OranTeivRelationshipsResponseMessage> 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 @@
             final AbstractStatement moduleOrSubmodule = yangModel.getYangModelRoot().getModuleOrSubmodule();
             final AbstractStatement domainStatement = moduleOrSubmodule.getChild(new StatementModuleAndName(
                     "o-ran-smo-teiv-common-yang-extensions", "domain"));
-            List<String> 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/models/o-ran-smo-teiv-common-yang-extensions.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang
index 1b66c59..276e2a5 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang
@@ -29,115 +29,126 @@
 
   SPDX-License-Identifier: Apache-2.0";
 
-  revision "2024-05-02" {
-    description "Initial revision.";
-    or-teiv-yext:label 0.3.0;
-  }
+    revision "2024-05-24" {
+        description "Initial revision.";
+        or-teiv-yext:label 0.3.0;
+    }
 
-  extension biDirectionalTopologyRelationship {
+    extension biDirectionalTopologyRelationship {
+        description
+            "Defines a bi-directional relationship in the topology.
 
-    description
-      "Defines a bi-directional relationship in the topology.
+            A bi-directional-association (BDA) is a relationship comprising of
+            an A-side and a B-side. The A-side is considered the originating
+            side of the relationship; the B-side is considered the terminating
+            side of the relationship. The order of A-side and B-side is of
+            importance and MUST NOT be changed once defined.
 
-       A bi-directional-association (BDA) is a relationship comprising of an
-       A-side and a B-side. The A-side is considered the originating side of
-       the relationship; the B-side is considered the terminating side of the
-       relationship. The order of A-side and B-side is of importance and MUST
-       NOT be changed once defined.
+            Both A-side and B-side are defined on a type, and are given a role.
+            A type may have multiple originating and/or terminating sides of a
+            relationship, all distinguished by role name.
 
-       Both A-side and B-side are defined on a type, and are given a role. A
-       type may have multiple originating and/or terminating sides of a
-       relationship, all distinguished by role name.
+            The statement MUST only be a substatement of the 'module' statement.
+            Multiple 'bi-directional-topology-relationship' statements are
+            allowed per parent statement.
 
-       The statement MUST only be a substatement of the 'module' statement.
-       Multiple 'bi-directional-topology-relationship' statements are allowed
-       per parent statement.
+            Substatements to the 'bi-directional-topology-relationship' define
+            the A-side and the B-side, respectively, and optionally properties
+            of the relationship. Data nodes of types 'leaf' and 'leaf-list' are
+            used for this purpose. One of the data nodes MUST be annotated with
+            the 'a-side' extension; another data node MUST be annotated with the
+            'b-side' extension. Other data nodes define properties of the
+            relationship.
 
-       Substatements to the 'bi-directional-topology-relationship' define the
-       A-side and the B-side, respectively, and optionally properties of the
-       relationship. Data nodes of types 'leaf' and 'leaf-list' are used for
-       this purpose. One of the data nodes MUST be annotated with the 'a-side'
-       extension; another data node MUST be annotated with the 'b-side'
-       extension. Other data nodes define properties of the relationship.
+            The argument is the name of the relationship. The relationship name
+            is scoped to the namespace of the declaring module and MUST be
+            unique within the scope.";
 
-       The argument is the name of the relationship. The relationship name is
-       scoped to the namespace of the declaring module and MUST be unique
-       within the scope.";
+        argument relationshipName;
+    }
 
-    argument relationshipName;
-  }
+    extension aSide {
+        description
+            "Defines the A-side of a relationship.
 
-  extension aSide {
-    description
-      "Defines the A-side of a relationship.
+            The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
+            statement, which itself must be a substatement of the
+            'uni-directional-topology-relationship' statement.
 
-       The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
-       statement, which itself must be a substatement of the
-       'uni-directional-topology-relationship' statement.
+            The data type of the parent 'leaf' or 'leaf-list' MUST be
+            'instance-identifier'. Constraints MAY be used as part of the parent
+            'leaf' or 'leaf-list' to enforce cardinality.
 
-       The data type of the parent 'leaf' or 'leaf-list' MUST be
-       'instance-identifier'. Constraints MAY be used as part of the parent
-       'leaf' or 'leaf-list' to enforce cardinality.
+            The identifier of the parent 'leaf' or 'leaf-list' is used as name
+            of the role of the A-side of the relationship. The name of the role
+            is scoped to the type on which the A-side is defined and MUST be
+            unique within the scope.
 
-       The identifier of the parent 'leaf' or 'leaf-list' is used as name of
-       the role of the A-side of the relationship. The name of the role is
-       scoped to the type on which the A-side is defined and MUST be unique
-       within the scope.
+            While the parent 'leaf' or 'leaf-list' does not result in a property
+            of the relationship, it is RECOMMENDED to avoid using the name of an
+            existing type property as role name to avoid potential ambiguities
+            between properties of a type, and roles of a relationship on the
+            type.
 
-       While the parent 'leaf' or 'leaf-list' does not result in a property of
-       the relationship, it is RECOMMENDED to avoid using the name of an
-       existing type property as role name to avoid potential ambiguities
-       between properties of a type, and roles of a relationship on the type.
+            The argument is the name of the type on which the A-side resides.
+            If the type is declared in another module, the type must be
+            prefixed, and a corresponding 'import' statement be used to declare
+            the prefix.";
 
-       The argument is the name of the type on which the A-side resides. If the
-       type is declared in another module, the type must be prefixed, and a
-       corresponding 'import' statement be used to declare the prefix.";
+        argument aSideType;
+    }
 
-    argument aSideType;
-  }
+    extension bSide {
+        description
+            "Defines the B-side of a relationship.
 
-  extension bSide {
-    description "Defines the B-side of a relationship.
+            The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
+            statement, which itself must be a substatement of the
+            'uni-directional-topology-relationship' statement.
 
-       The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
-       statement, which itself must be a substatement of the
-       'uni-directional-topology-relationship' statement.
+            The data type of the parent 'leaf' or 'leaf-list' MUST be
+            'instance-identifier'. Constraints MAY be used as part of the parent
+            'leaf' or 'leaf-list' to enforce cardinality.
 
-       The data type of the parent 'leaf' or 'leaf-list' MUST be
-       'instance-identifier'. Constraints MAY be used as part of the parent
-       'leaf' or 'leaf-list' to enforce cardinality.
+            The identifier of the parent 'leaf' or 'leaf-list' is used as name
+            of the role of the B-side of the relationship. The name of the role
+            is scoped to the type on which the B-side is defined and MUST be
+            unique within the scope.
 
-       The identifier of the parent 'leaf' or 'leaf-list' is used as name of
-       the role of the B-side of the relationship. The name of the role is
-       scoped to the type on which the B-side is defined and MUST be unique
-       within the scope.
+            While the parent 'leaf' or 'leaf-list' does not result in a property
+            of the relationship, it is RECOMMENDED to avoid using the name of an
+            existing type property as role name to avoid potential ambiguities
+            between properties of a type, and roles of a relationship on the
+            type.
 
-       While the parent 'leaf' or 'leaf-list' does not result in a property of
-       the relationship, it is RECOMMENDED to avoid using the name of an
-       existing type property as role name to avoid potential ambiguities
-       between properties of a type, and roles of a relationship on the type.
+            The argument is the name of the type on which the B-side resides.
+            If the type is declared in another module, the type must be
+            prefixed, and a corresponding 'import' statement be used to declare
+            the prefix.";
 
-       The argument is the name of the type on which the B-side resides. If the
-       type is declared in another module, the type must be prefixed, and a
-       corresponding 'import' statement be used to declare the prefix.";
+        argument bSideType;
+    }
 
-    argument bSideType;
-  }
+    extension domain {
+        description "Keyword used to carry domain information.";
+        argument domainName;
+    }
 
-  extension domain {
-    description "Keyword used to carry domain information.";
-    argument domainName;
-  }
+    extension label {
+        description
+            "The label can be used to give modules and submodules a semantic
+            version, in addition to their revision.
 
-  extension label {
-    description "The label can be used to give modules and submodules a semantic version, in addition to their revision.
+            The format of the label is 'x.y.z' - expressed as pattern, it is
+            [0-9]+\\.[0-9]+\\.[0-9]+
 
-      The format of the label is 'x.y.z' - expressed as pattern, it is [0-9]+\\.[0-9]+\\.[0-9]+
+            The statement MUST only be a substatement of the revision statement.
+            Zero or one revision label statements per parent statement are
+            allowed.
 
-      The statement MUST only be a substatement of the revision statement.  Zero or one revision label statements
-      per parent statement are allowed.
+            Revision labels MUST be unique amongst all revisions of a module or
+            submodule.";
 
-      Revision labels MUST be unique amongst all revisions of a module or submodule.";
-      argument semversion;
-  }
+        argument semversion;
+    }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang
index 7aeef7e..ba20e1a 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang
@@ -1,12 +1,11 @@
 module o-ran-smo-teiv-common-yang-types {
+    yang-version 1.1;
+    namespace "urn:o-ran:smo-teiv-common-yang-types";
+    prefix or-teiv-types;
 
-  yang-version 1.1;
-  namespace "urn:o-ran:smo-teiv-common-yang-types";
-  prefix or-teiv-types;
+    import o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
 
-  import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }
-
-  import _3gpp-common-yang-types { prefix types3gpp; }
+    import _3gpp-common-yang-types { prefix types3gpp; }
 
   organization "ORAN";
   contact "The Authors";
@@ -33,72 +32,77 @@
 
   SPDX-License-Identifier: Apache-2.0";
 
-  revision "2024-05-02" {
-    description "Initial revision.";
-    or-teiv-yext:label 0.3.0;
-  }
-
-  grouping Top_Grp_Type {
-
-    description "Grouping containing the key attribute common to all types. All types
-                MUST use this grouping.";
-
-    leaf id {
-      type string;
-      description "Unique identifier of topology entities. Represents the Entity Instance Identifier.";
-    }
-  }
-
-  grouping CM_ID {
-
-    description "Grouping containing the key attributes to make
-                use of Configuration Management (CM).";
-
-    leaf cmHandle {
-      type string;
-      description "Unique identifier for network entities in CM.";
+    revision "2024-05-24" {
+        description "Initial revision.";
+        or-teiv-yext:label 0.3.0;
     }
 
-    leaf resourceIdentifier {
-      type string;
-      description "The xpath expression identifying the resource in the Node model yang tree.";
+    grouping Top_Grp_Type {
+        description "Grouping containing the key attribute common to all types.
+            All types MUST use this grouping.";
+
+        leaf id {
+            type string;
+            description "Unique identifier of topology entities. Represents the
+                Entity Instance Identifier.";
+        }
     }
-  }
-
-  typedef _3GPP_FDN_Type {
-    type types3gpp:DistinguishedName;
-  }
-
-  container consumer-data {
-    description "This container defines the consumer-data. Consumer-data may be attached to Topology Entity or
-                Topology Relation instance, outside of the declared Topology Entity or Topology Relationship's attributes.
-                This container cannot be instantiated, and it MUST NOT be augmented or deviated in any way, unless stated
-                otherwise.";
 
     container decorators {
-      description "This container serves as extension point for applications wishing to define their own decorators.
-                  This is done via augmentations. They can only be defined in name value pair.";
+        description
+            "This container serves as extension point for applications wishing
+            to define their own decorators. This is done via augmentations. They
+            can only be defined in name value pair.
+
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
     }
 
     leaf-list classifiers {
-      description "Consumer defined tags to topology entities and relationships.";
-      type identityref { base classifier; }
+        description
+            "Consumer defined tags to topology entities and relationships.
+
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
+
+        type identityref { base classifier; }
     }
 
     leaf-list sourceIds {
-      description "An ordered list of identities that represent the set of native source identifiers for participating
-                  entities.";
-      type string;
-      ordered-by user;
+        description
+            "An ordered list of identities that represent the set of native
+            source identifiers for participating entities.
+
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
+
+        type string;
+        ordered-by user;
     }
 
     container metadata {
-      description "This container serves as extension point to define metadata. They can only be defined in name value
-                  pair.";
-    }
-  }
+        description
+            "This container serves as extension point to define metadata. They
+            can only be defined in name value pair.
 
-  identity classifier{
-    description  "The classifier is used as a base to provide all classifiers with identity. ";
-  }
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
+    }
+
+    identity classifier{
+        description "The classifier is used as a base to provide all classifiers
+            with identity. ";
+    }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang
deleted file mode 100644
index a676f50..0000000
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang
+++ /dev/null
@@ -1,154 +0,0 @@
-module o-ran-smo-teiv-equipment-to-ran {
-    yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-equipment-to-ran";
-    prefix or-teiv-equiptoran;
-
-    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 o-ran-smo-teiv-equipment {prefix or-teiv-equip; }
-
-    import o-ran-smo-teiv-ran {prefix or-teiv-ran; }
-
-
-    organization "ORAN";
-    contact "The Authors";
-    description 
-    "RAN Equipment to Logical topology model.
-
-    This model contains the RAN Equipment to Logical topology
-    entities and relations.
-
-    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";
-
-    revision "2024-05-02" {
-        description "Initial revision.";
-        or-teiv-yext:label 0.3.0;
-    }
-
-    or-teiv-yext:domain EQUIPMENT_TO_RAN;
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_GNBDUFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-gnbduFunction {
-            description "gNodeB-DU Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this gNodeB-DU Function.";
-            or-teiv-yext:bSide or-teiv-ran:GNBDUFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_GNBCUCPFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-gnbcucpFunction {
-            description "gNodeB-CUCP Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this gNodeB-CUCP Function.";
-            or-teiv-yext:bSide or-teiv-ran:GNBCUCPFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_GNBCUUPFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-gnbcuupFunction {
-            description "gNodeB-CUUP Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this gNodeB-CUUP Function.";
-            or-teiv-yext:bSide or-teiv-ran:GNBCUUPFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_ENODEBFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-enodebFunction {
-            description "eNodeB Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this eNodeB Function.";
-            or-teiv-yext:bSide or-teiv-ran:ENodeBFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship ANTENNAMODULE_SERVES_ANTENNACAPABILITY { // 0..n to 0..m
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-antennaCapability {
-            description "Antenna Capability serviced by this Antenna Module.";
-            or-teiv-yext:aSide or-teiv-equip:AntennaModule;
-            type instance-identifier;
-        }
-
-        leaf-list serving-antennaModule {
-            description "Antenna Module serves this Antenna Capability.";
-            or-teiv-yext:bSide or-teiv-ran:AntennaCapability;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship SECTOR_GROUPS_ANTENNAMODULE { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list grouped-antennaModule {
-            description "Sector groups Antenna Module.";
-            or-teiv-yext:aSide or-teiv-ran:Sector;
-            type instance-identifier;
-        }
-
-        leaf grouped-by-sector {
-            description "Antenna Module grouped by Sector.";
-            or-teiv-yext:bSide or-teiv-equip:AntennaModule;
-            type instance-identifier;
-        }
-    }
-}
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang
index d231491..21fd623 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang
@@ -34,12 +34,9 @@
     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.
+    See the License for the specific language governing permissions and";
 
-    SPDX-License-Identifier: Apache-2.0";
-
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
@@ -47,83 +44,70 @@
     or-teiv-yext:domain EQUIPMENT;
 
     list AntennaModule {
-        description "An Antenna Module represents the
-                    physical aspect of an antenna.";
+        description "An Antenna Module represents the physical aspect of an
+            antenna.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the AntennaSubUnit MO. It contains
-                            the full path from the Subnetwork to the
-                            AntennaSubUnit.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf antennaModelNumber {
-                description "Vendor-specific antenna model
-                            identifier. This attribute is part of
-                            AISG v3 ADB Standard and has
-                            no operational impact.";
+                description "Vendor-specific antenna model identifier. This
+                    attribute is part of AISG v3 ADB Standard and has no
+                    operational impact.";
                 type string;
             }
 
             leaf mechanicalAntennaBearing {
-                description "Antenna bearing on antenna subunit
-                            where antenna unit is installed.";
-                type uint32;
+                description "Antenna bearing on antenna subunit where antenna
+                    unit is installed.";
+                type int32;
             }
 
             leaf mechanicalAntennaTilt {
-                description "The fixed antenna tilt of the installation,
-                            defined as the inclination of the antenna
-                            element respect to the vertical plane.
-                            It is a signed value. Positive indicates
-                            downtilt, and negative indicates uptilt.";
-                type uint32;
+                description "The fixed antenna tilt of the installation, defined
+                    as the inclination of the antenna element respect to the
+                    vertical plane. It is a signed value. Positive indicates
+                    downtilt, and negative indicates uptilt.";
+                type int32;
             }
 
             leaf positionWithinSector {
-                description "Antenna unit position within sector.
-                            This attribute is part of AISG v3 ADB
-                            Standard and has no operational impact.";
+                description "Antenna unit position within sector. This attribute
+                    is part of AISG v3 ADB Standard and has no operational
+                    impact.";
                 type string;
             }
 
             leaf totalTilt {
-                description "Total antenna elevation including the
-                            installed tilt and the tilt applied by
-                            the Remote Electrical Tilt (RET).";
-                type uint32;
+                description "Total antenna elevation including the installed
+                    tilt and the tilt applied by the Remote Electrical
+                    Tilt (RET).";
+                type int32;
             }
 
             leaf electricalAntennaTilt {
                 description "Electrically-controlled tilt of main beam maximum
-                            with respect to direction orthogonal to antenna
-                            element axis (see 3GPP TS 25.466). Value is signed;
-                            tilt down is positive, tilt up is negative.";
-                type uint32;
+                    with respect to direction orthogonal to antenna element
+                    axis (see 3GPP TS 25.466). Value is signed; tilt down is
+                    positive, tilt up is negative.";
+                type int32;
             }
 
             leaf-list antennaBeamWidth {
-                description "The angular span of the main lobe of the antenna radiation
-                              pattern in the horizontal plane. Measured in degrees.";
+                description "The angular span of the main lobe of the antenna
+                    radiation pattern in the horizontal plane. Measured in
+                    degrees.";
                 type uint32;
             }
 
             uses geo:geo-location;
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list Site {
-        description "A site is a physical location where an Antenna or
-                    Physical NF can be installed.";
+        description "A site is a physical location where an equipment can be
+            installed.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
@@ -136,35 +120,6 @@
 
             uses geo:geo-location;
 
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
-        }
-    }
-
-    list PhysicalNF {
-        description "Represents a Physical NF,
-                    which is used to realise Network Functions.";
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        container attributes {
-            leaf name {
-                description "Name of Physical NF.";
-                type string;
-            }
-
-            leaf type {
-                description "Type of Physical NF.";
-                type string;
-            }
-
-            uses geo:geo-location;
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
@@ -185,23 +140,4 @@
             type instance-identifier;
         }
     }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_INSTALLED_AT_SITE { // 1..n to 0..1
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf installed-at-site {
-            description "Physical NF installed at Site.";
-            or-teiv-yext:aSide PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf-list installed-physicalNF {
-            description "Site where Physical NF is installed.";
-            or-teiv-yext:bSide Site;
-            type instance-identifier;
-            min-elements 1;
-        }
-    }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang
index b439513..25a0902 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang
@@ -3,9 +3,9 @@
     namespace "urn:o-ran:smo-teiv-oam";
     prefix or-teiv-oam;
 
-    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
+    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 o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
 
     organization "ORAN";
     contact "The Authors";
@@ -33,7 +33,7 @@
 
     SPDX-License-Identifier: Apache-2.0";
 
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
@@ -41,26 +41,13 @@
     or-teiv-yext:domain OAM;
 
     list ManagedElement {
-        description "A Managed Element (ME) is a node into a telecommunication network
-                    providing support and/or service to subscribers. An ME communicates
-                    with a manager application (directly or indirectly) over one or more
-                    interfaces for the purpose of being monitored and/or controlled.";
+        description "A Managed Element (ME) is a node into a telecommunication
+            network providing support and/or service to subscribers. An ME
+            communicates with a manager application (directly or indirectly)
+            over one or more interfaces for the purpose of being monitored
+            and/or controlled.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
-
-        container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the ManagedElement MO. It contains
-                            the full path from the Subnetwork to the
-                            ManagedElement.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
-        }
     }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang
index 3b3eeba..7f5c4df 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang
@@ -40,7 +40,7 @@
 
     SPDX-License-Identifier: Apache-2.0";
 
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
@@ -50,37 +50,26 @@
     list GNBDUFunction {
         description "gNodeB Distributed Unit (gNB-DU).
 
-                    A gNB may consist of a gNB-Centralized Unit
-                    (gNB-CU) and a gNB-DU. The CU processes non-real
-                    time protocols and services, and the DU processes
-                    PHY level protocol and real time services. The
-                    gNB-CU and the gNB-DU units are connected via
-                    F1 logical interface.
+            A gNB may consist of a gNB-Centralized Unit (gNB-CU) and a gNB-DU.
+            The CU processes non-real time protocols and services, and the DU
+            processes PHY level protocol and real time services. The gNB-CU and
+            the gNB-DU units are connected via F1 logical interface.
 
-                    The following is true for a gNB-DU:
-                    Is connected to the gNB-CU-CP through the F1-C
-                    interface.Is connected to the gNB-CU-UP through
-                    the F1-U interface. One gNB-DU is connected to only
-                    one gNB-CU-CP. One gNB-DU can be connected to
-                    multiple gNB-CU-UPs under the control of the same
-                    gNB-CU-CP.
-                    Note: A gNB may consist of a gNB-CU-CP, multiple
-                    gNB-CU-UPs and multiple gNB-DUs. gNB-DU is a concrete
-                    class that extends the NG-RAN node object. In Topology, you
-                    can create, read, update, and delete the gNB-DU object.";
+            The following is true for a gNB-DU:
+            Is connected to the gNB-CU-CP through the F1-C interface. Is
+            connected to the gNB-CU-UP through the F1-U interface. One gNB-DU is
+            connected to only one gNB-CU-CP. One gNB-DU can be connected to
+            multiple gNB-CU-UPs under the control of the same gNB-CU-CP.
+
+            Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs and
+            multiple gNB-DUs. gNB-DU is a concrete class that extends the NG-RAN
+            node object. In Topology, you can create, read, update, and delete
+            the gNB-DU object.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the GNBDUFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            GNBDUFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             container dUpLMNId {
                 description "PLMN identifier used as part of PM Events data";
                 uses types3gpp:PLMNId;
@@ -88,21 +77,17 @@
 
             leaf gNBDUId {
                 description "Unique identifier for the DU within a gNodeB";
-                type uint32;
+                type int64;
             }
 
             leaf gNBId {
                 description "Identity of gNodeB within a PLMN";
-                type uint32;
+                type int64;
             }
 
             leaf gNBIdLength {
                 description "Length of gNBId bit string representation";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
@@ -110,42 +95,30 @@
     list GNBCUCPFunction {
         description "gNodeB Centralized Unit Control Plane (gNB-CU-CP)
 
-                    This is a logical node hosting the Radio Resource
-                    Control (RRC) and the control plane part of the
-                    Packet Data Convergence Protocol (PDCP) of the
-                    gNodeB Centralized Unit (gNB-CU) for an E-UTRAN gNodeB
-                    (en-gNB) or a gNodeB (gNB). The gNB-CU-CP terminates
-                    the E1 interface connected with the gNB-CU-UP and the
-                    F1-C interface connected with the gNodeB
-                    Distributed Unit (gNB-DU).
+            This is a logical node hosting the Radio Resource Control (RRC) and
+            the control plane part of the Packet Data Convergence Protocol
+            (PDCP) of the gNodeB Centralized Unit (gNB-CU) for an E-UTRAN gNodeB
+            (en-gNB) or a gNodeB (gNB). The gNB-CU-CP terminates the E1
+            interface connected with the gNB-CU-UP and the F1-C interface
+            connected with the gNodeB Distributed Unit (gNB-DU).
 
-                    The following is true for a gNB-CU-CP:
-                    Is connected to the gNB-DU through the F1-C interface.
-                    Is connected to the gNB-CU-UP through the E1 interface.
-                    Only one gNB-CU-CP is connected to one gNB-DU.
-                    Only one gNB-CU-CP is connected to one gNB-CU-UP.
-                    One gNB-DU can be connected to multiple gNB-CU-UPs
-                    under the control of the same gNB-CU-CP.One gNB-CU-UP
-                    can be connected to multiple DUs under the control of
-                    the same gNB-CU-CP.
-                    Note: A gNB may consist of a gNB-CU-CP, multiple
-                    gNB-CU-UPs and multiple gNB-DUs. A gNB-CU-CP is a
-                    concrete class that extends the NG-RAN node object.
-                    In Topology, you can create, read, update, and delete
-                    the gNB-CU-CP object.";
+            The following is true for a gNB-CU-CP:
+            Is connected to the gNB-DU through the F1-C interface. Is connected
+            to the gNB-CU-UP through the E1 interface. Only one gNB-CU-CP is
+            connected to one gNB-DU. Only one gNB-CU-CP is connected to one
+            gNB-CU-UP. One gNB-DU can be connected to multiple gNB-CU-UPs under
+            the control of the same gNB-CU-CP.One gNB-CU-UP can be connected to
+            multiple DUs under the control of the same gNB-CU-CP.
+
+            Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs and
+            multiple gNB-DUs. A gNB-CU-CP is a concrete class that extends the
+            NG-RAN node object. In Topology, you can create, read, update, and
+            delete the gNB-CU-CP object.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the GNBCUCPFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            GNBCUCPFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf gNBCUName {
                 description "Name of gNodeB-CU";
                 type string;
@@ -153,77 +126,58 @@
 
             leaf gNBId {
                 description "Identity of gNodeB within a PLMN";
-                type uint32;
+                type int64;
             }
 
             leaf gNBIdLength {
                 description "Length of gNBId bit string representation";
-                type uint32;
+                type int32;
             }
 
             container pLMNId {
-                description "PLMN identifier to be used as part
-                            of global RAN node identity";
+                description "PLMN identifier to be used as part of global RAN
+                    node identity";
                 uses types3gpp:PLMNId;
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list GNBCUUPFunction {
         description "gNodeB Centralized Unit User Plane (gNB-CU-UP)
 
-                    A gNB-CU-UP is a logical node hosting the User
-                    Plane part of the Packet Data Convergence,
-                    Protocol (PDCP) of the gNodeB Centralized Unit
-                    (gNB-CU) for an E-UTRAN gNodeB (en-gNB), and the
-                    User Plane part of the PDCP protocol and the
-                    Service Data Adaptation Protocol (SDAP) of the
-                    gNB-CU for a gNodeB (gNB). The gNB-CU-UP terminates
-                    the E1 interface connected with the gNB-CU-CP and
-                    the F1-U interface connected with the gNodeB
-                    Distributed Unit (gNB-DU).
+            A gNB-CU-UP is a logical node hosting the User Plane part of the
+            Packet Data Convergence, Protocol (PDCP) of the gNodeB Centralized
+            Unit (gNB-CU) for an E-UTRAN gNodeB (en-gNB), and the User Plane
+            part of the PDCP protocol and the Service Data Adaptation Protocol
+            (SDAP) of the gNB-CU for a gNodeB (gNB). The gNB-CU-UP terminates
+            the E1 interface connected with the gNB-CU-CP and the F1-U interface
+            connected with the gNodeB Distributed Unit (gNB-DU).
 
-                    The following is true for a gNB-CU-UP:
-                    Is connected to the gNB-DU through the
-                    F1-U interface. Is connected to the gNB-CU-CP through
-                    the E1 interface. One gNB-CU-UP is connected to only one
-                    gNB-CU-CP. One gNB-DU can be connected to multiple
-                    gNB-CU-UPs under the control of the same gNB-CU-CP. One
-                    gNB-CU-UP can be connected to multiple DUs under the
-                    control of the same gNB-CU-CP.
-                    Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs
-                    and multiple gNB-DUs. A gNB-CU-UP is a concrete class that
-                    extends the NG-RAN node object. In Topology, you can
-                    create, read, update, and delete the gNB-CU-UP object.";
+            The following is true for a gNB-CU-UP:
+            Is connected to the gNB-DU through the F1-U interface. Is connected
+            to the gNB-CU-CP through the E1 interface. One gNB-CU-UP is
+            connected to only one gNB-CU-CP. One gNB-DU can be connected to
+            multiple gNB-CU-UPs under the control of the same gNB-CU-CP. One
+            gNB-CU-UP can be connected to multiple DUs under the control of the
+            same gNB-CU-CP.
+
+            Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs and
+            multiple gNB-DUs. A gNB-CU-UP is a concrete class that extends the
+            NG-RAN node object. In Topology, you can create, read, update, and
+            delete the gNB-CU-UP object.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the GNBCUUPFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            GNBCUUPFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf gNBId {
                 description "Identity of gNodeB within a PLMN";
-                type uint32;
+                type int64;
             }
 
             leaf gNBIdLength {
                 description "Length of gNBId bit string representation";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
@@ -231,60 +185,43 @@
     list NRCellCU {
         description "Represents an NR Cell in gNodeB-CU.
 
-                    5G NR is a new radio access technology (RAT)
-                    developed by 3GPP for the 5G (fifth generation)
-                    mobile network. It is designed to be the global
-                    standard for the air interface of 5G networks.
+            5G NR is a new radio access technology (RAT) developed by 3GPP for
+            the 5G (fifth generation) mobile network. It is designed to be the
+            global standard for the air interface of 5G networks.
 
-                    5G NR has synchronization signal that is known as
-                    Primary Synchronization signal (PSS) and Secondary
-                    Synchronization signal (SSS). These signals are
-                    specific to NR physical layer and provide the
-                    following information required by UE for downlink
-                    synchronization: PSS provides Radio Frame Boundary
-                    (Position of 1st Symbol in a Radio frame) SSS provides
-                    Subframe Boundary (Position of 1st Symbol in a Subframe)
-                    Physical Layer Cell ID (PCI) information using both
-                    PSS and SSS.";
+            5G NR has synchronization signal that is known as Primary
+            Synchronization Signal (PSS) and Secondary Synchronization
+            Signal (SSS). These signals are specific to NR physical layer and
+            provide the following information required by UE for downlink
+            synchronization: PSS provides Radio Frame Boundary (Position of 1st
+            Symbol in a Radio frame) SSS provides Subframe Boundary (Position of
+            1st Symbol in a Subframe) Physical Layer Cell ID (PCI) information
+            using both PSS and SSS.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the NRCellCU MO. It contains
-                            the full path from the Subnetwork to the
-                            NRCellCU.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf cellLocalId {
-                description "Used together with gNodeB identifier to
-                            identify NR cell in PLMN. Used together
-                            with gNBId to form NCI.";
-                type uint32;
+                description "Used together with gNodeB identifier to identify NR
+                    cell in PLMN. Used together with gNBId to form NCI.";
+                type int32;
             }
 
             container plmnId {
                 description "PLMN ID for NR CGI. If empty,
-                            GNBCUCPFunction::pLMNId is used
-                            for PLMN ID in NR CGI";
+                    GNBCUCPFunction::pLMNId is used for PLMN ID in NR CGI";
                 uses types3gpp:PLMNId;
             }
 
             leaf nCI {
                 description "NR Cell Identity";
-                type uint32;
+                type int64;
             }
 
             leaf nRTAC {
                 description "NR Tracking Area Code (TAC)";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
@@ -292,129 +229,98 @@
     list NRCellDU {
         description "Represents an NR Cell in gNodeB-DU.
 
-                    5G NR is a new radio access technology (RAT)
-                    developed by 3GPP for the 5G (fifth generation)
-                    mobile network. It is designed to be the global
-                    standard for the air interface of 5G networks.
+            5G NR is a new radio access technology (RAT) developed by 3GPP for
+            the 5G (fifth generation) mobile network. It is designed to be the
+            global standard for the air interface of 5G networks.
 
-                    5G NR has synchronization signal that is known as
-                    Primary Synchronization signal (PSS) and Secondary
-                    Synchronization signal (SSS). These signals are
-                    specific to NR physical layer and provide the
-                    following information required by UE for downlink
-                    synchronization: PSS provides Radio Frame Boundary
-                    (Position of 1st Symbol in a Radio frame) SSS provides
-                    Subframe Boundary (Position of 1st Symbol in a Subframe)
-                    Physical Layer Cell ID (PCI) information using both
-                    PSS and SSS.";
+            5G NR has synchronization signal that is known as Primary
+            Synchronization signal (PSS) and Secondary Synchronization signal
+            (SSS). These signals are specific to NR physical layer and provide
+            the following information required by UE for downlink
+            synchronization: PSS provides Radio Frame Boundary (Position of 1st
+            Symbol in a Radio frame) SSS provides Subframe Boundary (Position of
+            1st Symbol in a Subframe) Physical Layer Cell ID (PCI) information
+            using both PSS and SSS.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the NRCellDU MO. It contains
-                            the full path from the Subnetwork to the
-                            NRCellDU.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf cellLocalId {
                 description "Used together with gNodeB identifier to identify NR
-                             cell in PLMN. Used together with gNBId to form NCI.";
-                type uint32;
+                    cell in PLMN. Used together with gNBId to form NCI.";
+                type int32;
             }
 
             leaf nCI {
                 description "NR Cell Identity.";
-                type uint32;
+                type int64;
             }
 
             leaf nRPCI {
                 description "The Physical Cell Identity (PCI) of the NR cell.";
-                type uint32;
+                type int32;
             }
 
             leaf nRTAC {
                 description "NR Tracking Area Code (TAC).";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
 
     list ENodeBFunction {
-        description "An Evolved Node B (eNodeB) is the only mandatory
-                    node in the radio access network (RAN) of Long-Term
-                    Evolution (LTE). The eNodeB is a complex base
-                    station that handles radio communications
-                    in the cell and carries out radio resource
-                    management and handover decisions. Unlike 2/3G
-                    wireless RAN, there is no centralized radio network
-                    controller in LTE. It is the hardware that is connected
-                    to the mobile phone network that communicates
-                    directly with mobile handsets (User Equipment), like a base
-                    transceiver station (BTS) in GSM networks. This simplifies
-                    the architecture and allows lower response times.";
+        description "An Evolved Node B (eNodeB) is the only mandatory node in
+            the radio access network (RAN) of Long-Term Evolution (LTE). The
+            eNodeB is a complex base station that handles radio communications
+            in the cell and carries out radio resource management and handover
+            decisions. Unlike 2/3G wireless RAN, there is no centralized radio
+            network controller in LTE. It is the hardware that is connected to
+            the mobile phone network that communicates directly with mobile
+            handsets (User Equipment), like a base transceiver station (BTS) in
+            GSM networks. This simplifies the architecture and allows lower
+            response times.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the ENodeBFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            ENodeBFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf eNBId {
-                description "The ENodeB ID that forms part of
-                            the Cell Global Identity, and is
-                            also used to identify the node over
-                            the S1 interface";
-                type uint32;
+                description "The ENodeB ID that forms part of the Cell Global
+                    Identity, and is also used to identify the node over the S1
+                    interface";
+                type int32;
             }
 
             container eNodeBPlmnId {
-                description "The ENodeB Public Land Mobile Network
-                            (PLMN) ID that forms part of the ENodeB
-                            Global ID used to identify the node over
-                            the S1 interface. Note: The value (MCC=001, MNC=01)
-                            indicates that the PLMN is not initiated.
-                            The value can not be used as a valid PLMN Identity.";
+                description "The ENodeB Public Land Mobile Network (PLMN) ID
+                    that forms part of the ENodeB Global ID used to identify the
+                    node over the S1 interface. Note: The value
+                    (MCC=001, MNC=01) indicates that the PLMN is not initiated.
+                    The value can not be used as a valid PLMN Identity.";
 
                 leaf mcc {
-                    description "The MCC part of a PLMN identity
-                                used in the radio network.";
+                    description "The MCC part of a PLMN identity used in the
+                        radio network.";
                     type int32 {
                         range 0..999;
                     }
                 }
                 leaf mnc {
-                    description "The MNC part of a PLMN identity
-                                used in the radio network.";
+                    description "The MNC part of a PLMN identity used in the
+                        radio network.";
                     type int32 {
                         range 0..999;
                     }
                 }
                 leaf mncLength {
-                    description "The length of the MNC part of a
-                                PLMN identity used in the radio network.";
+                    description "The length of the MNC part of a PLMN identity
+                        used in the radio network.";
                     type int32 {
                         range 2..3;
                     }
                 }
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
@@ -432,52 +338,44 @@
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of either the EUtranCellFDD MO or
-                            the EUtranCellTDD MO. It contains the full
-                            path from the Subnetwork to the EUtranCellFDD or
-                            EUtranCellTDD.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf cellId{
-                description "RBS internal ID attribute for EUtranCell.
-                            Must be unique in the RBS. Together with the
-                            Node ID and Public Land Mobile Network (PLMN)
-                            this is a universally unique cell ID";
-                type uint32;
+                description "RBS internal ID attribute for EUtranCell. Must be
+                    unique in the RBS. Together with the Node ID and Public
+                    Land Mobile Network (PLMN) this is a universally unique
+                    cell ID";
+                type int32;
             }
 
             leaf earfcndl {
-                description "The channel number for the central downlink frequency.";
-                type uint32;
+                description "The channel number for the central downlink
+                    frequency.";
+                type int32;
             }
 
             leaf earfcnul {
                 description "Channel number for the central uplink frequency";
-                type uint32;
+                type int32;
             }
 
             leaf dlChannelBandwidth {
                 description "The downlink channel bandwidth in the FDD cell.";
-                type uint32;
+                type int32;
             }
 
             leaf earfcn {
-                description "The E-UTRA Absolute Radio Frequency Channel
-                            Number (EARFCN) for the TDD cell";
-                type uint32;
+                description "The E-UTRA Absolute Radio Frequency Channel Number
+                    (EARFCN) for the TDD cell";
+                type int32;
             }
 
             leaf channelBandwidth {
                 description "The channel bandwidth in the TDD cell.";
-                type uint32;
+                type int32;
             }
 
             leaf tac {
                 description "Tracking Area Code for the EUtran Cell";
-                type uint32;
+                type int32;
             }
 
             leaf duplexType {
@@ -493,94 +391,67 @@
                     }
                 }
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list NRSectorCarrier {
-        description "The NR Sector Carrier object provides
-                    the attributes for defining the logical
-                    characteristics of a carrier (cell) in a
-                    sector. A sector is a coverage area associated
-                    with a base station having its own antennas,
-                    radio ports, and control channels. The concept
-                    of sectors was developed to improve co-channel
-                    interference in cellular systems, and most wireless
-                    systems use three sector cells.";
+        description "The NR Sector Carrier object provides the attributes for
+            defining the logical characteristics of a carrier (cell) in a
+            sector. A sector is a coverage area associated with a base station
+            having its own antennas, radio ports, and control channels. The
+            concept of sectors was developed to improve co-channel interference
+            in cellular systems, and most wireless systems use three sector
+            cells.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the NRSectorCarrier MO. It contains
-                            the full path from the Subnetwork to the
-                            NRSectorCarrier.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf arfcnDL {
-                description "NR Absolute Radio Frequency Channel
-                            Number (NR-ARFCN) for downlink";
-                type uint32;
+                description "NR Absolute Radio Frequency Channel Number
+                    (NR-ARFCN) for downlink";
+                type int32;
             }
 
             leaf arfcnUL {
                 description "NR Absolute Radio frequency Channel Number
-                            (NR-ARFCN) for uplink.";
-                type uint32;
+                    (NR-ARFCN) for uplink.";
+                type int32;
             }
 
             leaf frequencyDL {
                 description "RF Reference Frequency of downlink channel";
-                type uint32;
+                type int32;
             }
 
             leaf frequencyUL {
                 description "RF Reference Frequency of uplink channel";
-                type uint32;
+                type int32;
             }
 
             leaf bSChannelBwDL {
                 description "BS Channel bandwidth in MHz for downlink.";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
 
     list LTESectorCarrier {
-        description "The LTE Sector Carrier object provides the
-                    attributes for defining the logical characteristics
-                    of a carrier (cell) in a sector. A sector is a coverage
-                    area associated with a base station having
-                    its own antennas, radio ports, and control channels.
-                    The concept of sectors was developed to improve co-channel
-                    interference in cellular systems, and most wireless systems
-                    use three sector cells.";
+        description "The LTE Sector Carrier object provides the attributes for
+            defining the logical characteristics of a carrier (cell) in a
+            sector. A sector is a coverage area associated with a base station
+            having its own antennas, radio ports, and control channels. The
+            concept of sectors was developed to improve co-channel interference
+            in cellular systems, and most wireless systems use three sector
+            cells.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the SectorCarrier MO. It contains
-                            the full path from the Subnetwork to the
-                            SectorCarrier.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf sectorCarrierType {
                 description "Indicates whether or not the sector carrier
-                            modelled by MO SectorCarrier is a digital sector.";
+                    modelled by MO SectorCarrier is a digital sector.";
                 type enumeration {
                     enum normal_sector {
                         value 0;
@@ -602,72 +473,55 @@
                         value 4;
                         description "Right digital sector for 3DS";
                     }
-                    enum middle_digital_sector {
+                    enum middle_digital_sector_3ds {
                         value 5;
                         description "Middle digital sector for 3DS";
                     }
                 }
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list AntennaCapability {
-        description "This MO serves as a mapping between the cell
-                    and the RBS equipment used to provide coverage
-                    in a certain geographical area. The MO also
-                    controls the maximum output power of the sector.";
+        description "This MO serves as a mapping between the cell and the RBS
+            equipment used to provide coverage in a certain geographical area.
+            The MO also controls the maximum output power of the sector.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the SectorEquipmentFunction MO.
-                            It contains the full path from the Subnetwork
-                            to the SectorEquipmentFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf-list eUtranFqBands {
-                description "List of LTE frequency bands
-                            that associated hardware supports";
+                description "List of LTE frequency bands that associated
+                    hardware supports";
                 type string;
             }
 
             leaf-list geranFqBands {
-                description "List of GERAN frequency bands
-                            that associated hardware supports";
+                description "List of GERAN frequency bands that associated
+                    hardware supports";
                 type string;
             }
 
             leaf-list nRFqBands {
-                description "List of NR frequency bands
-                            associated hardware supports";
+                description "List of NR frequency bands associated hardware
+                    supports";
                 type string;
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list Sector {
-        description "A group of co-located Cells that
-                    have a shared coverage area.";
+        description "A group of co-located Cells that have a shared
+            coverage area.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
             leaf sectorId {
-                description "Universally unique ID generated by the
-                            sector's discovery mechanism.";
+                description "Universally unique ID generated by the sector's
+                    discovery mechanism.";
                 type uint64;
             }
 
@@ -675,8 +529,7 @@
 
             leaf azimuth {
                 description "Average value of the azimuths of the cells
-                            comprising the sector, determined during
-                            sector discovery.";
+                    comprising the sector, determined during sector discovery.";
                 type decimal64{
                     fraction-digits 6;
                 }
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang
similarity index 95%
rename from teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang
rename to teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang
index da05846..c8719a0 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang
@@ -1,6 +1,6 @@
-module o-ran-smo-teiv-cloud-to-ran {
+module o-ran-smo-teiv-rel-cloud-ran {
     yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-cloud-to-ran";
+    namespace "urn:o-ran:smo-teiv-rel-cloud-ran";
     prefix or-teiv-cloudtoran;
 
     import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
@@ -40,7 +40,7 @@
         or-teiv-yext:label 0.3.0;
     }
 
-    or-teiv-yext:domain CLOUD_TO_RAN;
+    or-teiv-yext:domain REL_CLOUD_RAN;
 
     or-teiv-yext:biDirectionalTopologyRelationship NFDEPLOYMENT_SERVES_GNBDUFUNCTION { // 0..n to 0..m
 
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang
new file mode 100644
index 0000000..1ad570e
--- /dev/null
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang
@@ -0,0 +1,82 @@
+module o-ran-smo-teiv-rel-equipment-ran {
+    yang-version 1.1;
+    namespace "urn:o-ran:smo-teiv-rel-equipment-ran";
+    prefix or-teiv-rel-equipran;
+
+    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 o-ran-smo-teiv-equipment { prefix or-teiv-equip; }
+
+    import o-ran-smo-teiv-ran { prefix or-teiv-ran; }
+
+
+    organization "ORAN";
+    contact "The Authors";
+    description 
+    "RAN Equipment to Logical topology model.
+
+    This model contains the RAN Equipment to Logical topology
+    entities and relations.
+
+    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";
+
+    revision "2024-05-24" {
+        description "Initial revision.";
+        or-teiv-yext:label 0.3.0;
+    }
+
+    or-teiv-yext:domain REL_EQUIPMENT_RAN;
+
+    or-teiv-yext:biDirectionalTopologyRelationship ANTENNAMODULE_SERVES_ANTENNACAPABILITY { // 0..n to 0..m
+
+        uses or-teiv-types:Top_Grp_Type;
+        key id;
+
+        leaf-list serviced-antennaCapability {
+            description "Antenna Capability serviced by this Antenna Module.";
+            or-teiv-yext:aSide or-teiv-equip:AntennaModule;
+            type instance-identifier;
+        }
+
+        leaf-list serving-antennaModule {
+            description "Antenna Module serves this Antenna Capability.";
+            or-teiv-yext:bSide or-teiv-ran:AntennaCapability;
+            type instance-identifier;
+        }
+    }
+
+    or-teiv-yext:biDirectionalTopologyRelationship SECTOR_GROUPS_ANTENNAMODULE { // 0..1 to 0..n
+
+        uses or-teiv-types:Top_Grp_Type;
+        key id;
+
+        leaf-list grouped-antennaModule {
+            description "Sector groups Antenna Module.";
+            or-teiv-yext:aSide or-teiv-ran:Sector;
+            type instance-identifier;
+        }
+
+        leaf grouped-by-sector {
+            description "Antenna Module grouped by Sector.";
+            or-teiv-yext:bSide or-teiv-equip:AntennaModule;
+            type instance-identifier;
+        }
+    }
+}
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang
similarity index 95%
rename from teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang
rename to teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang
index 8b318c7..42c885a 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang
@@ -1,6 +1,6 @@
-module o-ran-smo-teiv-oam-to-cloud {
+module o-ran-smo-teiv-rel-oam-cloud {
     yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-oam-to-cloud";
+    namespace "urn:o-ran:smo-teiv-rel-oam-cloud";
     prefix or-teiv-oamtocloud;
 
     import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
@@ -40,7 +40,7 @@
         or-teiv-yext:label 0.3.0;
     }
 
-    or-teiv-yext:domain OAM_TO_CLOUD;
+    or-teiv-yext:domain REL_OAM_CLOUD;
 
     or-teiv-yext:biDirectionalTopologyRelationship MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF {  // 0..1 to 1
 
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang
similarity index 88%
rename from teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang
rename to teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang
index 4a03cdc..8d26cd0 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang
@@ -1,15 +1,15 @@
-module o-ran-smo-teiv-oam-to-ran {
+module o-ran-smo-teiv-rel-oam-ran {
     yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-oam-to-ran";
-    prefix or-teiv-oamtoran;
+    namespace "urn:o-ran:smo-teiv-rel-oam-ran";
+    prefix or-teiv-rel-oamran;
 
-    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
+    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 o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
 
-    import o-ran-smo-teiv-oam {prefix or-teiv-oam; }
+    import o-ran-smo-teiv-oam { prefix or-teiv-oam; }
 
-    import o-ran-smo-teiv-ran {prefix or-teiv-ran; }
+    import o-ran-smo-teiv-ran { prefix or-teiv-ran; }
 
     organization "ORAN";
     contact "The Authors";
@@ -35,12 +35,12 @@
 
     SPDX-License-Identifier: Apache-2.0";
 
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
 
-    or-teiv-yext:domain OAM_TO_RAN;
+    or-teiv-yext:domain REL_OAM_RAN;
 
     or-teiv-yext:biDirectionalTopologyRelationship MANAGEDELEMENT_MANAGES_ENODEBFUNCTION {   // 1 to 0..n
 
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 @@
   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.                                                                                                                                                                                                                                                                                                                                       |&ensp;  GNBDUFunction  |                                                                                        |                                                                                                                 | All ids of every GNBDUFunction                                                                                    |
-    | To return all attributes of every instance of the entityType used in the query.                                                                                                                                                                                                                                                                                                                                |&ensp;  GNBDUFunction  |&ensp;  /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                          |&ensp;  GNBDUFunction  |&ensp;  /attributes(gNBId) <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Case 1: The attributes must be separated by a comma "," in case of using parenthesis "()". <br/> Case 2: The attributes must be separated by a semicolon ";" in case of using slash "/". <br/> Note: The attributes must be valid *targetFilter* of the object. |&ensp;  GNBDUFunction  |&ensp;  /attributes(gNBId, gNBIdLength)  <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                                       |&ensp;  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. <br/> 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 ",".                                                              |&ensp;  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. <br/> Note: The attributes must be valid field or fields of the object.                                                                                          |&ensp;  GNBDUFunction  |                                                                                       | /attributes[@gNBIdLength=3 and @gNBId=111]  <br/> &emsp;&ensp; **OR** <br/> /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. <br/> Note: The attribute must be a valid field of the object.                                                                                                                                                                                            | RAN        | GNBDUFunction  | /attributes(gNBId)              |                                                                                         | All gNBIds of every GNBDUFunction                                                                                                    |
+    | To return every instance of the entityTypeName used in the query, but only the attributes that were defined in the *targetFilter* parameter. <br/> Note: The attributes must be separated by a comma "," when using parenthesis "()".                                                                                                                                                                | RAN        | GNBDUFunction  | /attributes(gNBId, gNBIdLength) |                                                                                         | All gNBIds and gNBIdLengths of every GNBDUFunction                                                                                   |
+    | To return the ids for all instances of the entityTypeName used in the query, that matches the given property in the *scopeFilter* parameter.                                                                                                                                                                                                                                                         | RAN        | GNBDUFunction  |                                 | /sourceIds[contains (@item, 'SubNetwork=Ireland')]                                      | Unique set of ids of GNBDUFunctions, where sourceIds contains *SubNetwork=Ireland*                                                   |
+    | To return the ids for all instances of the entityTypeName used in the query, that matches the given attributes in the *scopeFilter* parameter. <br/> Note: The attributes must be separated by a *AND* or *OR*".                                                                                                                                                                                     | RAN        | GNBDUFunction  |                                 | /attributes [@gNBIdLength=3 and @gNBId=111]                                             | Unique set of ids of GNBDUFunctions, where the gNBIdLength equals 3 and the gNBId equals 111                                         |
+    | To return the ids for all instances of the entityTypeName used in the query, that satisfies one of the conditions in the *scopeFilter* parameter. A condition is a complete unit of *scopeFilter* parameter surrounded by square brackets. <br/> Note: Multiple conditions can be given in the scopeFilter separated by a semicolon ";" to represent AND, or a pipe symbol "&#124;" to represent OR. | RAN        | GNBDUFunction  |                                 | /attributes [@gNBIdLength=3]  &#124; /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                                                                                                                                                                                                                                                                                                                                                          | 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.                                                                                                                                                                                                                    |&ensp; GNBDUFunction |&ensp; /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.                                                                                                                                                                                                                           |&ensp; GNBDUFunction |&ensp; /NRCellDU ;&ensp; /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.                                                                                                                                                                                             |&ensp; 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.                                                                                                                                                                            |&ensp; GNBDUFunction |                                     | /AntennaCapability <br/> &emsp;&ensp; **OR** <br/> /NRCellDU | Unique set of ids of GNBDUFunctions that are directly related to AntennaCapability or NRCellDU with any relationship type                |
+    | 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'] &#124;  /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=2'] ; /provided-euTranCell [@id='urn:3gpp:dn: ManagedElement=1, EUtranCell=2'] | All EnodeBFunction entities with enbId as *1*, managed by the Managed Element *urn:3gpp:dn: ManagedElement=1* or *urn:3gpp:dn: ManagedElement=2*, and provides EuTranCell *urn:3gpp:dn: ManagedElement=1, EUtranCell=2*. |
+
+    ## Querying entities for relationships
+    The *entityTypeName* is used as the root of the queries.
+
+    | Use case                                                                                                           | domainName  | entityTypeName | entityId                                       | targetFilter                            | scopeFilter                                                        | Query result                                                                                                                                                                                        |
+    |:-------------------------------------------------------------------------------------------------------------------|-------------|:---------------|------------------------------------------------|:----------------------------------------|:-------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | To return the relationships for a given entity specified by its id.                                                | RAN         | GNBDUFunction  | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 |                                         |                                                                    | All relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*.                                                                                                       |
+    | To return specific relationships for a given entity specified by its id.                                           | REL_OAM_RAN | GNBDUFunction  | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 | /MANAGEDELEMENT _MANAGES _GNBDUFUNCTION |                                                                    | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1*.                                                              |
+    | To return specific relationships for an entity specified by its id to another entity using its id and association. | REL_OAM_RAN | GNBDUFunction  | urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1 |                                         | /managed-by-managedElement [@id = 'urn:3gpp:dn: ManagedElement=1'] | All *MANAGEDELEMENT _MANAGES _GNBDUFUNCTION* relations for the GNBDUFunction with id *urn:3gpp:dn: ManagedElement=1, GNBDUFunction=1* where the managed element is *urn:3gpp:dn: ManagedElement=1*. |
+
+    ## Querying on relationships
+    Here, the *relationshipTypeName* is used as the root of the queries.
+
+    | Use case                                                                                                 | domainName  | relationshipTypeName                    | targetFilter | scopeFilter                                                      | Query result                                                                                                                                                 |
+    |:---------------------------------------------------------------------------------------------------------|-------------|:----------------------------------------|:-------------|:-----------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | To return all relationships for a specified relationship type.                                           | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION |              |                                                                  | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships.                                                                                                     |
+    | To return all relationships for a specified relationship type with a specified association to an entity. | REL_OAM_RAN | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION |              | /managed-by-managedElement [@id='urn:3gpp:dn: ManagedElement=1'] | All MANAGEDELEMENT_MANAGES_ENODEBFUNCTION relationships having an association *managed-by-managedElement* to ManagedElement *urn:3gpp:dn: ManagedElement=1*. |
+    
+    ## Querying on classifiers and decorators
+    The *domainName* is used as the root of the queries.
+
+    | Use case                                                                                                                                          | domainName | targetFilter | scopeFilter                                               | Query result                                                                                                           |
+    |:--------------------------------------------------------------------------------------------------------------------------------------------------|------------|--------------|:----------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------|
+    | Return all related entity IDs that are exactly matched with the specified classifier with given domain name.                                      | RAN        |              | /classifiers[@item = 'gnbdu-function-model:Indoor']       | All the entity IDs that are classified with "gnbdu-function-model:Indoor" in RAN domain.                               |
+    | Return all related entity IDs that are partially matched for the given classifier with given domain name.                                         | RAN        |              | /classifiers[contains(@item, 'Ind')]                      | All the entity IDs that are partially matched with "Ind" in RAN domain.                                                |
+    | Return all related entity IDs that are exactly matched with the key-value pair that specified decorators with given domain name.                  | RAN        |              | /decorators[@gnbdu-function-model:textdata = 'Stockholm'] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata = 'Stockholm'" in RAN domain.          |
+    | Return all related entity IDs that are exactly matched with key parameter where the value of the decorator is unknown with given domain name.     | RAN        |              | /decorators[contains(@gnbdu-function-model:textdata, "")] | All the entity IDs that are exactly matched with "gnbdu-function-model:textdata as key of the decorator in RAN domain. |
+
+    The *entityName* is used as the root of the queries.
+    
+    | Use case                                                                                                                                                                                         | entityName   | relationshipTypeName | targetFilter              | scopeFilter                                                                                                     | Query result                                                                                                                                                                                               |
+    |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------|:---------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | Return all related entity IDs and classifiers.                                                                                                                                                   | NRCellDU     |                      | /classifiers              |                                                                                                                 | All NRCellDU IDs and classifiers.                                                                                                                                                                          |
+    | Return all related entity IDs and decorators.                                                                                                                                                    | NRCellDU     |                      | /decorators               |                                                                                                                 | All NRCellDU IDs and decorators.                                                                                                                                                                           |
+    | Return all related entity IDs that are exact match for the given classifiers and decorators.                                                                                                     | NRCellDU     |                      |                           | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm'] | All NRCellDU IDs where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and where classifier exactly contains "gnbdu-function-model:Indoor".         |
+    | Return all related entity IDs and classifiers that are partially matched for the given classifier.                                                                                               | NRCellDU     |                      | /classifiers              | /classifiers[contains(@item, 'Ind')]                                                                            | All NRCellDU IDs and classifiers partially contains the text "Ind".                                                                                                                                        |
+    | Return all related entity IDs and decorators where key is a exact match and value is partially match.                                                                                            | NRCellDU     |                      | /decorators               | /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')]                                                   | All NRCellDU IDs and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc'.                                                               |
+    | Return all related entity IDs, decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. | NRCellDU     |                      | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stoc')]             | All NRCellDU IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stoc' and classifiers partially contains the text "Ind".  |
+    
+     The *relationshipTypeName* is used as the root of the queries.
+    
+    | Use case                                                                                                                                                                                               | entityName | relationshipTypeName                    | targetFilter              | scopeFilter                                                                                                                       | Query result                                                                                                                                                                                                                                |
+    |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|:----------------------------------------|:--------------------------|:----------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+    | Return all related relationships IDs and classifiers.                                                                                                                                                  |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers              |                                                                                                                                   | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and classifiers.                                                                                                                                                                            |
+    | Return all related relationships IDs and decorators.                                                                                                                                                   |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators               |                                                                                                                                   | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators.                                                                                                                                                                             |
+    | Return all related relationship IDs that are exact match for the given classifier and decorators.                                                                                                      |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION |                           | /classifiers[@item = 'gnbdu-function-model:Indoor']; /decorators [@gnbdu-function-model:textdata = 'Stockholm']                   | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator is 'Stockholm'" and classifiers exactly contains "gnbdu-function-model:Indoor". |
+    | Return all related relationships IDs and classifiers that are partially matched for the given classifier.                                                                                              |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers              | /classifiers[contains(@item, 'Ind')]                                                                                              | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and classifiers partially contains the text "Ind".                                                                                                                                              |
+    | Return all related relationships IDs and decorators where key is a exact match and value is partially match.                                                                                           |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /decorators               | /decorators[contains(@gnbdu-function-model:textdata, 'Stock')]                                                                    | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION and where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock'.                                                                    |
+    | Return all related relationships IDs,decorators and classifiers where key of the decorator is a exact match and value partially matches, and classifiers partially contains from the given parameters. |            | MANAGEDELEMENT _MANAGES _ENODEBFUNCTION | /classifiers; /decorators | /classifiers[contains(@item, 'Ind')]; /decorators[contains(@gnbdu-function-model:textdata, 'Stock')]                              | All MANAGEDELEMENT _MANAGES _ENODEBFUNCTION IDs and decorators where key of the decorator is "gnbdu-function-model:textdata" and the value of the decorator partially contains 'Stock' and classifiers partially contains the text "Ind".   |
 
   version: 0.11.0
-  title: Topology 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 @@
     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 @@
       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 @@
       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 @@
       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 @@
 
   /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 @@
 
   /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 @@
       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 @@
 
   /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 @@
 
   /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 @@
 
   /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 @@
 
   /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 @@
       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 @@
       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 @@
       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 @@
         '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 @@
           $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 @@
         '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 @@
           $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 @@
           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 @@
         '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 @@
           $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 @@
           $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 @@
         '500':
           $ref: '#/components/responses/InternalServerError'
 
+
 components:
   schemas:
     Classifier:
@@ -773,9 +812,9 @@
         operation:
           type: string
           enum:
-          - merge
-          - delete
-        classifier:
+            - merge
+            - delete
+        classifiers:
           type: array
           items:
             type: string
@@ -787,32 +826,32 @@
           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 @@
           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 @@
               type: object
           required:
             - url
+
     Decorator:
       type: object
       title: Decorator
@@ -861,12 +901,12 @@
         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 @@
           type: string
           description: multipartFile
           format: binary
-    QueryMessage:
-      type: object
-      title: Query
-      properties:
-        query:
-          type: string
     Schema:
       type: object
       title: Schema
@@ -1032,9 +1066,7 @@
         name:
           type: string
         domain:
-          type: array
-          items:
-            type: string
+          type: string
         revision:
           type: string
         content:
@@ -1108,7 +1140,7 @@
           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 @@
       content:
         application/problem+json:
           schema:
-            $ref: "#/components/schemas/ErrorMessage"
+            $ref: '#/components/schemas/ErrorMessage'
           example:
             status: '500'
             title: Internal Server Error
@@ -1128,7 +1160,7 @@
       content: {}
 
   parameters:
-    acceptInHeader:
+    acceptJsonInHeader:
       name: Accept
       in: header
       required: true
@@ -1136,7 +1168,23 @@
         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 @@
       schema:
         type: string
         default: "o-ran-smo-teiv-ran"
-    collectionIdInPath:
-      name: collectionId
+    groupIdInPath:
+      name: groupId
       in: path
       required: true
       schema:
@@ -1219,7 +1267,9 @@
           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 @@
           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
+          - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1"
+            attributes:
+              gNBDUId: 11
+              dUpLMNId:
+                mcc: 110
+                mnc: 210
+              gNBId: 21
+              gNBIdLength: 2
+            decorators:
+              location: Stockholm
+            classifiers:
+              - Rural
+            sourceIds:
+              - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1"
+              - "urn:cmHandle:395221E080CCF0FD1924103B15873814"
+            metadata:
+              trustLevel: RELIABLE
     EntitiesResponseExample:
       value:
         items:
-        - o-ran-smo-teiv-ran:NRCellDU:
-          - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
-            attributes:
-              cellLocalId: 4589
-              nCI: 1
-              nRPCI: 12
-              nRTAC: 310
-            decorators:
-              location: Stockholm
-            classifiers:
-            - Rural
-            sourceIds:
-            - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=1"
-            - "urn:cmHandle:395221E080CCF0FD1924103B15873814"
-            metadata:
-              trustLevel: RELIABLE
-        - o-ran-smo-teiv-ran:NRCellDU:
-          - id: "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
-            attributes:
-              cellLocalId: 4559
-              nRPCI: 32
-              nRTAC: 510
-            decorators:
-              location: Stockholm
-            classifiers:
-            - Rural
-            sourceIds:
-            - "urn:3gpp:dn:ManagedElement=1,GNBDUFunction=1,NRCellDU=2"
-            - "urn:cmHandle:395221E080CCF0FD1924103B15873814"
-            metadata:
-              trustLevel: RELIABLE
+          - 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
+              - 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
-            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:
+    StaticGroupExample:
       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:
-      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-cloud
-            domain:
-              - RAN_CLOUD
-            revision: '2021-05-19'
+              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-cloud/content'
-          - name: o-ran-smo-teiv-oam
-            domain:
-              - RAN_OAM'
-            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-oam/content'
-          - name: o-ran-smo-teiv-common-yang-types
-            domain:
-              []
-            revision: '2021-07-04'
+              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-common-yang-types/content'
-          - name: o-ran-smo-teiv-common-yang-extensions
-            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-extensions/content'
+              href: "/schemas/o-ran-smo-teiv-rel-equipment-ran/content"
+          - name: "o-ran-smo-teiv-common-yang-types"
+            domain: ""
+            revision: "2024-05-24"
+            content:
+              href: "/schemas/o-ran-smo-teiv-common-yang-types/content"
+          - name: "o-ran-smo-teiv-common-yang-extensions"
+            domain: ""
+            revision: "2024-05-24"
+            content:
+              href: "/schemas/o-ran-smo-teiv-common-yang-extensions/content"
+          - name: "ietf-geo-location"
+            domain: ""
+            revision: "2022-02-11"
+            content:
+              href: "/schemas/ietf-geo-location/content"
+          - name: "_3gpp-common-yang-extensions"
+            domain: ""
+            revision: "2019-06-23"
+            content:
+              href: "/schemas/_3gpp-common-yang-extensions/content"
+          - name: "_3gpp-common-yang-types"
+            domain: ""
+            revision: "2023-11-06"
+            content:
+              href: "/schemas/_3gpp-common-yang-types/content"
+          - name: "ietf-yang-types"
+            domain: ""
+            revision: "2013-07-15"
+            content:
+              href: "/schemas/ietf-yang-types/content"
+          - name: "ietf-inet-types"
+            domain: ""
+            revision: "2013-07-15"
+            content:
+              href: "/schemas/ietf-inet-types/content"
         self:
-          href: '/schemas?offset=0&limit=500'
+          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 @@
     @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 @@
         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 @@
         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 @@
         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 @@
     "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 @@
     "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"