Schema creation and Data pre-load to on cps-xnf-proxy start-up using liquibase 74/118274/4
authorputhuparambil.aditya <aditya.puthuparambil@bell.ca>
Tue, 23 Feb 2021 15:51:00 +0000 (15:51 +0000)
committerputhuparambil.aditya <aditya.puthuparambil@bell.ca>
Wed, 24 Feb 2021 10:10:34 +0000 (10:10 +0000)
1. Common change-log master used only to specify the different change sets.
2. Specific change set created for cpsTables creation and for loading data to each cps component like dataspace, schema-set, anchor and dataNode
3. The data load cabability is configurable in the sense, it will be trigered only if the label is specified in the application.yaml

Issue-ID: CPS-173, CPS-242
Signed-off-by: puthuparambil.aditya <aditya.puthuparambil@bell.ca>
Change-Id: I44c640ce50b7203f5799d722149397478a98bc05

17 files changed:
cps-dependencies/pom.xml
cps-ri/pom.xml
cps-ri/src/main/resources/changelog/changelog-master.yaml [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/01-createCPSTables.yaml [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/02-loadData-dataspace.yaml [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/03-loadData-schema-set.yaml [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/04-loadData-anchor.yaml [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/05-loadData-fragment.yaml [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/data/anchor.csv [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/data/dataspace.csv [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/data/fragment.csv [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/data/schema_set.csv [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/data/schema_set_yang_resources.csv [new file with mode: 0644]
cps-ri/src/main/resources/changelog/db/changes/data/yang_resource.csv [new file with mode: 0644]
cps-ri/src/main/resources/schema.sql [deleted file]
cps-ri/src/test/resources/application.yml
docker-compose/application.yml

index 1beee11..8076d65 100755 (executable)
@@ -17,6 +17,7 @@
         <commons-lang3.version>3.11</commons-lang3.version>
         <groovy.version>3.0.6</groovy.version>
         <hibernate-types.version>2.10.0</hibernate-types.version>
+        <liquibase.version>4.3.1</liquibase.version>
         <nexusproxy>https://nexus.onap.org</nexusproxy>
         <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
         <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
                 <artifactId>spotbugs</artifactId>
                 <version>${spotbugs.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.liquibase</groupId>
+                <artifactId>liquibase-core</artifactId>
+                <version>${liquibase.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 </project>
index 005fa27..e4921cf 100644 (file)
             <groupId>org.modelmapper</groupId>\r
             <artifactId>modelmapper</artifactId>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>org.liquibase</groupId>\r
+            <artifactId>liquibase-core</artifactId>\r
+        </dependency>\r
         <!-- T E S T   D E P E N D E N C I E S -->\r
         <dependency>\r
             <groupId>org.codehaus.groovy</groupId>\r
diff --git a/cps-ri/src/main/resources/changelog/changelog-master.yaml b/cps-ri/src/main/resources/changelog/changelog-master.yaml
new file mode 100644 (file)
index 0000000..6577012
--- /dev/null
@@ -0,0 +1,11 @@
+databaseChangeLog:
+  - include:
+      file: changelog/db/changes/01-createCPSTables.yaml
+  - include:
+      file: changelog/db/changes/02-loadData-dataspace.yaml
+  - include:
+      file: changelog/db/changes/03-loadData-schema-set.yaml
+  - include:
+      file: changelog/db/changes/04-loadData-anchor.yaml
+  - include:
+      file: changelog/db/changes/05-loadData-fragment.yaml
\ No newline at end of file
diff --git a/cps-ri/src/main/resources/changelog/db/changes/01-createCPSTables.yaml b/cps-ri/src/main/resources/changelog/db/changes/01-createCPSTables.yaml
new file mode 100644 (file)
index 0000000..cbf77dc
--- /dev/null
@@ -0,0 +1,560 @@
+databaseChangeLog:
+  - changeSet:
+      id: 1-1
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: anchor_pkey
+                  name: id
+                  type: BIGINT
+              - column:
+                  name: name
+                  type: TEXT
+              - column:
+                  name: schema_set_id
+                  type: INTEGER
+              - column:
+                  constraints:
+                    nullable: false
+                  name: dataspace_id
+                  type: INTEGER
+            tableName: anchor
+  - changeSet:
+      id: 1-2
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  constraints:
+                    nullable: false
+                  name: from_fragment_id
+                  type: BIGINT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: to_fragment_id
+                  type: BIGINT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: relation_type_id
+                  type: INTEGER
+              - column:
+                  constraints:
+                    nullable: false
+                  name: from_rel_xpath
+                  type: TEXT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: to_rel_xpath
+                  type: TEXT
+            tableName: relation
+  - changeSet:
+      id: 1-3
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  constraints:
+                    nullable: false
+                  name: relation_type
+                  type: TEXT
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: relation_type_pkey
+                  name: id
+                  type: INTEGER
+            tableName: relation_type
+  - changeSet:
+      id: 1-4
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: fragment_pkey
+                  name: id
+                  type: BIGINT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: xpath
+                  type: TEXT
+              - column:
+                  name: attributes
+                  type: JSONB
+              - column:
+                  name: anchor_id
+                  type: BIGINT
+              - column:
+                  name: parent_id
+                  type: BIGINT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: dataspace_id
+                  type: INTEGER
+              - column:
+                  name: schema_node_id
+                  type: INTEGER
+            tableName: fragment
+  - changeSet:
+      id: 1-5
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: schema_set_pkey
+                  name: id
+                  type: INTEGER
+              - column:
+                  constraints:
+                    nullable: false
+                  name: name
+                  type: TEXT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: dataspace_id
+                  type: BIGINT
+            tableName: schema_set
+  - changeSet:
+      id: 1-6
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: yang_resource_pkey
+                  name: id
+                  type: INTEGER
+              - column:
+                  constraints:
+                    nullable: false
+                  name: name
+                  type: TEXT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: content
+                  type: TEXT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: checksum
+                  type: TEXT
+            tableName: yang_resource
+  - changeSet:
+      id: 1-7
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: dataspace_pkey
+                  name: id
+                  type: INTEGER
+              - column:
+                  constraints:
+                    nullable: false
+                  name: name
+                  type: TEXT
+            tableName: dataspace
+  - changeSet:
+      id: 1-8
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  constraints:
+                    nullable: false
+                  name: schema_node_identifier
+                  type: TEXT
+              - column:
+                  autoIncrement: true
+                  constraints:
+                    nullable: false
+                    primaryKey: true
+                    primaryKeyName: schema_node_pkey
+                  name: id
+                  type: INTEGER
+            tableName: schema_node
+  - changeSet:
+      id: 1-9
+      author: cps
+      changes:
+        - createTable:
+            columns:
+              - column:
+                  constraints:
+                    nullable: false
+                  name: schema_set_id
+                  type: BIGINT
+              - column:
+                  constraints:
+                    nullable: false
+                  name: yang_resource_id
+                  type: BIGINT
+            tableName: schema_set_yang_resources
+  - changeSet:
+      id: 1-10
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: schema_set_id
+            indexName: FKI_ANCHOR_SCHEMA_SET_ID_FK
+            tableName: anchor
+  - changeSet:
+      id: 1-11
+      author: cps
+      changes:
+        - addUniqueConstraint:
+            columnNames: dataspace_id, name
+            constraintName: anchor_dataspace_id_name_key
+            tableName: anchor
+  - changeSet:
+      id: 1-12
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: anchor_id
+            baseTableName: fragment
+            constraintName: fragment_anchor_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: anchor
+            validate: true
+  - changeSet:
+      id: 1-13
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: from_fragment_id
+            indexName: FKI_RELATIONS_FROM_ID_FK
+            tableName: relation
+  - changeSet:
+      id: 1-14
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: to_fragment_id
+            indexName: FKI_RELATIONS_TO_ID_FK
+            tableName: relation
+  - changeSet:
+      id: 1-15
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: relation_type_id
+            indexName: FKI_RELATION_TYPE_ID_FK
+            tableName: relation
+  - changeSet:
+      id: 1-16
+      author: cps
+      changes:
+        - addPrimaryKey:
+            columnNames: to_fragment_id, from_fragment_id, relation_type_id
+            constraintName: relation_pkey
+            tableName: relation
+  - changeSet:
+      id: 1-17
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: anchor_id
+            indexName: FKI_FRAGMENT_ANCHOR_ID_FK
+            tableName: fragment
+  - changeSet:
+      id: 1-18
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: dataspace_id
+            indexName: FKI_FRAGMENT_DATASPACE_ID_FK
+            tableName: fragment
+  - changeSet:
+      id: 1-19
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: parent_id
+            indexName: FKI_FRAGMENT_PARENT_ID_FK
+            tableName: fragment
+  - changeSet:
+      id: 1-20
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: schema_node_id
+            indexName: FKI_SCHEMA_NODE_ID_TO_ID
+            tableName: fragment
+  - changeSet:
+      id: 1-21
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: xpath
+              - column:
+                  name: dataspace_id
+            indexName: UQ_FRAGMENT_XPATH
+            tableName: fragment
+            unique: true
+  - changeSet:
+      id: 1-22
+      author: cps
+      changes:
+        - addUniqueConstraint:
+            columnNames: dataspace_id, anchor_id, xpath
+            constraintName: fragment_dataspace_id_anchor_id_xpath_key
+            tableName: fragment
+  - changeSet:
+      id: 1-23
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: from_fragment_id
+            baseTableName: relation
+            constraintName: relation_from_fragment_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: fragment
+            validate: true
+  - changeSet:
+      id: 1-24
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: to_fragment_id
+            baseTableName: relation
+            constraintName: relation_to_fragment_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: fragment
+            validate: true
+  - changeSet:
+      id: 1-25
+      author: cps
+      changes:
+        - addUniqueConstraint:
+            columnNames: name, dataspace_id
+            constraintName: schema_set_name_dataspace_id_key
+            tableName: schema_set
+  - changeSet:
+      id: 1-26
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: schema_set_id
+            baseTableName: schema_set_yang_resources
+            constraintName: schema_set_resource
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: CASCADE
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: schema_set
+            validate: true
+  - changeSet:
+      id: 1-27
+      author: cps
+      changes:
+        - addUniqueConstraint:
+            columnNames: checksum
+            constraintName: yang_resource_checksum_key
+            tableName: yang_resource
+  - changeSet:
+      id: 1-28
+      author: cps
+      changes:
+        - addUniqueConstraint:
+            columnNames: name
+            constraintName: UQ_NAME
+            tableName: dataspace
+  - changeSet:
+      id: 1-29
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: dataspace_id
+            baseTableName: fragment
+            constraintName: fragment_dataspace_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: dataspace
+            validate: true
+  - changeSet:
+      id: 1-30
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: dataspace_id
+            baseTableName: schema_set
+            constraintName: schema_set_dataspace
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: CASCADE
+            onUpdate: CASCADE
+            referencedColumnNames: id
+            referencedTableName: dataspace
+            validate: true
+  - changeSet:
+      id: 1-31
+      author: cps
+      changes:
+        - createIndex:
+            columns:
+              - column:
+                  name: schema_node_identifier
+            indexName: PERF_SCHEMA_NODE_SCHEMA_NODE_ID
+            tableName: schema_node
+  - changeSet:
+      id: 1-32
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: yang_resource_id
+            baseTableName: schema_set_yang_resources
+            constraintName: schema_set_yang_resources_yang_resource_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: yang_resource
+            validate: true
+  - changeSet:
+      id: 1-33
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: dataspace_id
+            baseTableName: anchor
+            constraintName: anchor_dataspace_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: dataspace
+            validate: true
+  - changeSet:
+      id: 1-34
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: schema_set_id
+            baseTableName: anchor
+            constraintName: anchor_schema_set_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: schema_set
+            validate: true
+  - changeSet:
+      id: 1-35
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: relation_type_id
+            baseTableName: relation
+            constraintName: relation_relation_type_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: relation_type
+            validate: true
+  - changeSet:
+      id: 1-36
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: parent_id
+            baseTableName: fragment
+            constraintName: fragment_parent_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: fragment
+            validate: true
+  - changeSet:
+      id: 1-37
+      author: cps
+      changes:
+        - addForeignKeyConstraint:
+            baseColumnNames: schema_node_id
+            baseTableName: fragment
+            constraintName: fragment_schema_node_id_fkey
+            deferrable: false
+            initiallyDeferred: false
+            onDelete: NO ACTION
+            onUpdate: NO ACTION
+            referencedColumnNames: id
+            referencedTableName: schema_node
+            validate: true
+
diff --git a/cps-ri/src/main/resources/changelog/db/changes/02-loadData-dataspace.yaml b/cps-ri/src/main/resources/changelog/db/changes/02-loadData-dataspace.yaml
new file mode 100644 (file)
index 0000000..c4e931d
--- /dev/null
@@ -0,0 +1,13 @@
+databaseChangeLog:
+  - changeSet:
+      author: cps
+      label: xnf-data-preload
+      id: 2
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/dataspace.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'dataspace'
\ No newline at end of file
diff --git a/cps-ri/src/main/resources/changelog/db/changes/03-loadData-schema-set.yaml b/cps-ri/src/main/resources/changelog/db/changes/03-loadData-schema-set.yaml
new file mode 100644 (file)
index 0000000..fd214da
--- /dev/null
@@ -0,0 +1,53 @@
+databaseChangeLog:
+  - changeSet:
+      author: cps
+      label: xnf-data-preload
+      id: 3.1
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/schema_set.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'schema_set'
+
+  - changeSet:
+      author: cps
+      label: xnf-data-preload
+      id: 3.2
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/yang_resource.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'yang_resource'
+        columns:
+          - column:
+              header:  name
+              name:  name
+              type:  STRING
+          - column:
+              header:  content
+              name: content
+              type: STRING
+          - column:
+              header:  checkstyle
+              name: checkstyle
+              type: STRING
+
+  - changeSet:
+      author: cps
+      label: xnf-data-preload
+      id: 3.3
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/schema_set_yang_resources.csv'
+        quotchar: '"'
+        primaryKey: 'schema_set_id,yang_resource_id'
+        separator: '|'
+        tableName: 'schema_set_yang_resources'
+        usePreparedStatements:  true
+
diff --git a/cps-ri/src/main/resources/changelog/db/changes/04-loadData-anchor.yaml b/cps-ri/src/main/resources/changelog/db/changes/04-loadData-anchor.yaml
new file mode 100644 (file)
index 0000000..d42870d
--- /dev/null
@@ -0,0 +1,13 @@
+databaseChangeLog:
+  - changeSet:
+      author: cps
+      label: xnf-data-preload
+      id: 4
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/anchor.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'anchor'
diff --git a/cps-ri/src/main/resources/changelog/db/changes/05-loadData-fragment.yaml b/cps-ri/src/main/resources/changelog/db/changes/05-loadData-fragment.yaml
new file mode 100644 (file)
index 0000000..1a31f42
--- /dev/null
@@ -0,0 +1,42 @@
+databaseChangeLog:
+  - changeSet:
+      author: cps
+      label: xnf-data-preload
+      id: 5
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/fragment.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'fragment'
+        columns:
+          - column:
+              header:  id
+              name:  id
+              type:  NUMERIC
+          - column:
+              header:  xpath
+              name:  xpath
+              type:  STRING
+          - column:
+              header:  attributes
+              name: attributes
+              type: CLOB
+          - column:
+              header:  anchor_id
+              name: anchor_id
+              type: NUMERIC
+          - column:
+              header:  parent_id
+              name: parent_id
+              type: NUMERIC
+          - column:
+              header:  dataspace_id
+              name: dataspace_id
+              type: NUMERIC
+          - column:
+              header:  schema_node_id
+              name: schema_node_id
+              type: NUMERIC
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/anchor.csv b/cps-ri/src/main/resources/changelog/db/changes/data/anchor.csv
new file mode 100644 (file)
index 0000000..78dd914
--- /dev/null
@@ -0,0 +1,2 @@
+name|schema_set_id|dataspace_id
+ran-network-simulation|(select id from schema_set where name='cps-ran-schema-model')|(select id from dataspace where name='NFP-Operational')
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/dataspace.csv b/cps-ri/src/main/resources/changelog/db/changes/data/dataspace.csv
new file mode 100644 (file)
index 0000000..70b4af6
--- /dev/null
@@ -0,0 +1,2 @@
+name
+NFP-Operational
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/fragment.csv b/cps-ri/src/main/resources/changelog/db/changes/data/fragment.csv
new file mode 100644 (file)
index 0000000..81c379d
--- /dev/null
@@ -0,0 +1,144 @@
+id|xpath|attributes|anchor_id|parent_id|dataspace_id|schema_node_id
+1|/cps-ran-schema|{}|(select id from anchor where name='ran-network-simulation')|null|(select id from dataspace where name='NFP-Operational')|null
+2|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]|"{"idNearRTRIC": "11"}"|(select id from anchor where name='ran-network-simulation')|1|(select id from dataspace where name='NFP-Operational')|null
+73|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]|"{"idNearRTRIC": "22"}"|(select id from anchor where name='ran-network-simulation')|1|(select id from dataspace where name='NFP-Operational')|null
+3|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]|"{"idGNBCUCPFunction": "cucpserver1"}"|(select id from anchor where name='ran-network-simulation')|2|(select id from dataspace where name='NFP-Operational')|null
+35|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]|"{"idGNBDUFunction": "1"}"|(select id from anchor where name='ran-network-simulation')|2|(select id from dataspace where name='NFP-Operational')|null
+47|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]|"{"idGNBDUFunction": "2"}"|(select id from anchor where name='ran-network-simulation')|2|(select id from dataspace where name='NFP-Operational')|null
+59|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]|"{"idGNBDUFunction": "3"}"|(select id from anchor where name='ran-network-simulation')|2|(select id from dataspace where name='NFP-Operational')|null
+71|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUUPFunction[@idGNBCUUPFunction="1111"]|"{"idGNBCUUPFunction": "1111"}"|(select id from anchor where name='ran-network-simulation')|2|(select id from dataspace where name='NFP-Operational')|null
+4|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/attributes|"{"gNBId": 98763, "gNBCUName": "cucpserver1", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+5|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15290"]|"{"idNRCellCU": "15290"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+7|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15175"]|"{"idNRCellCU": "15175"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+9|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15296"]|"{"idNRCellCU": "15296"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+11|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15176"]|"{"idNRCellCU": "15176"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+13|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15174"]|"{"idNRCellCU": "15174"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+15|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15289"]|"{"idNRCellCU": "15289"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+17|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="14000"]|"{"idNRCellCU": "14000"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+19|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15155"]|"{"idNRCellCU": "15155"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+21|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15425"]|"{"idNRCellCU": "15425"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+23|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15689"]|"{"idNRCellCU": "15689"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+25|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15426"]|"{"idNRCellCU": "15426"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+27|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15687"]|"{"idNRCellCU": "15687"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+29|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15825"]|"{"idNRCellCU": "15825"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+31|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15826"]|"{"idNRCellCU": "15826"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+33|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="13999"]|"{"idNRCellCU": "13999"}"|(select id from anchor where name='ran-network-simulation')|3|(select id from dataspace where name='NFP-Operational')|null
+6|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15290"]/attributes|"{"cellLocalId": 15290}"|(select id from anchor where name='ran-network-simulation')|5|(select id from dataspace where name='NFP-Operational')|null
+8|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15175"]/attributes|"{"cellLocalId": 15175}"|(select id from anchor where name='ran-network-simulation')|7|(select id from dataspace where name='NFP-Operational')|null
+10|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15296"]/attributes|"{"cellLocalId": 15296}"|(select id from anchor where name='ran-network-simulation')|9|(select id from dataspace where name='NFP-Operational')|null
+12|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15176"]/attributes|"{"cellLocalId": 15176}"|(select id from anchor where name='ran-network-simulation')|11|(select id from dataspace where name='NFP-Operational')|null
+14|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15174"]/attributes|"{"cellLocalId": 15174}"|(select id from anchor where name='ran-network-simulation')|13|(select id from dataspace where name='NFP-Operational')|null
+16|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15289"]/attributes|"{"cellLocalId": 15289}"|(select id from anchor where name='ran-network-simulation')|15|(select id from dataspace where name='NFP-Operational')|null
+18|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="14000"]/attributes|"{"cellLocalId": 14000}"|(select id from anchor where name='ran-network-simulation')|17|(select id from dataspace where name='NFP-Operational')|null
+20|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15155"]/attributes|"{"cellLocalId": 15155}"|(select id from anchor where name='ran-network-simulation')|19|(select id from dataspace where name='NFP-Operational')|null
+22|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15425"]/attributes|"{"cellLocalId": 15425}"|(select id from anchor where name='ran-network-simulation')|21|(select id from dataspace where name='NFP-Operational')|null
+24|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15689"]/attributes|"{"cellLocalId": 15689}"|(select id from anchor where name='ran-network-simulation')|23|(select id from dataspace where name='NFP-Operational')|null
+26|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15426"]/attributes|"{"cellLocalId": 15426}"|(select id from anchor where name='ran-network-simulation')|25|(select id from dataspace where name='NFP-Operational')|null
+28|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15687"]/attributes|"{"cellLocalId": 15687}"|(select id from anchor where name='ran-network-simulation')|27|(select id from dataspace where name='NFP-Operational')|null
+30|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15825"]/attributes|"{"cellLocalId": 15825}"|(select id from anchor where name='ran-network-simulation')|29|(select id from dataspace where name='NFP-Operational')|null
+32|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="15826"]/attributes|"{"cellLocalId": 15826}"|(select id from anchor where name='ran-network-simulation')|31|(select id from dataspace where name='NFP-Operational')|null
+34|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver1"]/NRCellCU[@idNRCellCU="13999"]/attributes|"{"cellLocalId": 13999}"|(select id from anchor where name='ran-network-simulation')|33|(select id from dataspace where name='NFP-Operational')|null
+36|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/attributes|"{"gNBDUId": 1, "gNBDUName": "gnduserver1", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|35|(select id from dataspace where name='NFP-Operational')|null
+37|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15289"]|"{"idNRCellDU": "15289"}"|(select id from anchor where name='ran-network-simulation')|35|(select id from dataspace where name='NFP-Operational')|null
+39|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15290"]|"{"idNRCellDU": "15290"}"|(select id from anchor where name='ran-network-simulation')|35|(select id from dataspace where name='NFP-Operational')|null
+41|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15296"]|"{"idNRCellDU": "15296"}"|(select id from anchor where name='ran-network-simulation')|35|(select id from dataspace where name='NFP-Operational')|null
+43|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15689"]|"{"idNRCellDU": "15689"}"|(select id from anchor where name='ran-network-simulation')|35|(select id from dataspace where name='NFP-Operational')|null
+45|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15687"]|"{"idNRCellDU": "15687"}"|(select id from anchor where name='ran-network-simulation')|35|(select id from dataspace where name='NFP-Operational')|null
+38|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15289"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15289}"|(select id from anchor where name='ran-network-simulation')|37|(select id from dataspace where name='NFP-Operational')|null
+40|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15290"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15290}"|(select id from anchor where name='ran-network-simulation')|39|(select id from dataspace where name='NFP-Operational')|null
+42|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15296"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15296}"|(select id from anchor where name='ran-network-simulation')|41|(select id from dataspace where name='NFP-Operational')|null
+44|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15689"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15689}"|(select id from anchor where name='ran-network-simulation')|43|(select id from dataspace where name='NFP-Operational')|null
+46|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="1"]/NRCellDU[@idNRCellDU="15687"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15687}"|(select id from anchor where name='ran-network-simulation')|45|(select id from dataspace where name='NFP-Operational')|null
+48|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/attributes|"{"gNBDUId": 2, "gNBDUName": "gnduserver2", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|47|(select id from dataspace where name='NFP-Operational')|null
+49|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15825"]|"{"idNRCellDU": "15825"}"|(select id from anchor where name='ran-network-simulation')|47|(select id from dataspace where name='NFP-Operational')|null
+51|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15155"]|"{"idNRCellDU": "15155"}"|(select id from anchor where name='ran-network-simulation')|47|(select id from dataspace where name='NFP-Operational')|null
+53|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15175"]|"{"idNRCellDU": "15175"}"|(select id from anchor where name='ran-network-simulation')|47|(select id from dataspace where name='NFP-Operational')|null
+55|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15176"]|"{"idNRCellDU": "15176"}"|(select id from anchor where name='ran-network-simulation')|47|(select id from dataspace where name='NFP-Operational')|null
+57|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15174"]|"{"idNRCellDU": "15174"}"|(select id from anchor where name='ran-network-simulation')|47|(select id from dataspace where name='NFP-Operational')|null
+50|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15825"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15825}"|(select id from anchor where name='ran-network-simulation')|49|(select id from dataspace where name='NFP-Operational')|null
+52|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15155"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15155}"|(select id from anchor where name='ran-network-simulation')|51|(select id from dataspace where name='NFP-Operational')|null
+54|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15175"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15175}"|(select id from anchor where name='ran-network-simulation')|53|(select id from dataspace where name='NFP-Operational')|null
+56|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15176"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15176}"|(select id from anchor where name='ran-network-simulation')|55|(select id from dataspace where name='NFP-Operational')|null
+58|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="2"]/NRCellDU[@idNRCellDU="15174"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15174}"|(select id from anchor where name='ran-network-simulation')|57|(select id from dataspace where name='NFP-Operational')|null
+60|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/attributes|"{"gNBDUId": 3, "gNBDUName": "gnduserver3", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|59|(select id from dataspace where name='NFP-Operational')|null
+61|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="15826"]|"{"idNRCellDU": "15826"}"|(select id from anchor where name='ran-network-simulation')|59|(select id from dataspace where name='NFP-Operational')|null
+63|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="14000"]|"{"idNRCellDU": "14000"}"|(select id from anchor where name='ran-network-simulation')|59|(select id from dataspace where name='NFP-Operational')|null
+65|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="13999"]|"{"idNRCellDU": "13999"}"|(select id from anchor where name='ran-network-simulation')|59|(select id from dataspace where name='NFP-Operational')|null
+67|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="15425"]|"{"idNRCellDU": "15425"}"|(select id from anchor where name='ran-network-simulation')|59|(select id from dataspace where name='NFP-Operational')|null
+69|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="15426"]|"{"idNRCellDU": "15426"}"|(select id from anchor where name='ran-network-simulation')|59|(select id from dataspace where name='NFP-Operational')|null
+62|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="15826"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15826}"|(select id from anchor where name='ran-network-simulation')|61|(select id from dataspace where name='NFP-Operational')|null
+64|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="14000"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 14000}"|(select id from anchor where name='ran-network-simulation')|63|(select id from dataspace where name='NFP-Operational')|null
+66|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="13999"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 13999}"|(select id from anchor where name='ran-network-simulation')|65|(select id from dataspace where name='NFP-Operational')|null
+68|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="15425"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15425}"|(select id from anchor where name='ran-network-simulation')|67|(select id from dataspace where name='NFP-Operational')|null
+70|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBDUFunction[@idGNBDUFunction="3"]/NRCellDU[@idNRCellDU="15426"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15426}"|(select id from anchor where name='ran-network-simulation')|69|(select id from dataspace where name='NFP-Operational')|null
+72|/cps-ran-schema/NearRTRIC[@idNearRTRIC="11"]/GNBCUUPFunction[@idGNBCUUPFunction="1111"]/attributes|"{"gNBId": 98763}"|(select id from anchor where name='ran-network-simulation')|71|(select id from dataspace where name='NFP-Operational')|null
+74|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]|"{"idGNBCUCPFunction": "cucpserver2"}"|(select id from anchor where name='ran-network-simulation')|73|(select id from dataspace where name='NFP-Operational')|null
+106|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]|"{"idGNBDUFunction": "4"}"|(select id from anchor where name='ran-network-simulation')|73|(select id from dataspace where name='NFP-Operational')|null
+118|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]|"{"idGNBDUFunction": "5"}"|(select id from anchor where name='ran-network-simulation')|73|(select id from dataspace where name='NFP-Operational')|null
+130|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]|"{"idGNBDUFunction": "6"}"|(select id from anchor where name='ran-network-simulation')|73|(select id from dataspace where name='NFP-Operational')|null
+142|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUUPFunction[@idGNBCUUPFunction="2222"]|"{"idGNBCUUPFunction": "2222"}"|(select id from anchor where name='ran-network-simulation')|73|(select id from dataspace where name='NFP-Operational')|null
+75|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/attributes|"{"gNBId": 98763, "gNBCUName": "cucpserver2", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+76|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15360"]|"{"idNRCellCU": "15360"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+78|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15361"]|"{"idNRCellCU": "15361"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+80|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11561"]|"{"idNRCellCU": "11561"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+82|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11562"]|"{"idNRCellCU": "11562"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+84|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="14655"]|"{"idNRCellCU": "14655"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+86|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="14656"]|"{"idNRCellCU": "14656"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+88|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="13910"]|"{"idNRCellCU": "13910"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+90|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="10896"]|"{"idNRCellCU": "10896"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+92|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="10897"]|"{"idNRCellCU": "10897"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+94|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11568"]|"{"idNRCellCU": "11568"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+96|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15548"]|"{"idNRCellCU": "15548"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+98|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11569"]|"{"idNRCellCU": "11569"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+100|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="14427"]|"{"idNRCellCU": "14427"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+102|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15549"]|"{"idNRCellCU": "15549"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+104|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="13905"]|"{"idNRCellCU": "13905"}"|(select id from anchor where name='ran-network-simulation')|74|(select id from dataspace where name='NFP-Operational')|null
+77|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15360"]/attributes|"{"cellLocalId": 15360}"|(select id from anchor where name='ran-network-simulation')|76|(select id from dataspace where name='NFP-Operational')|null
+79|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15361"]/attributes|"{"cellLocalId": 15361}"|(select id from anchor where name='ran-network-simulation')|78|(select id from dataspace where name='NFP-Operational')|null
+81|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11561"]/attributes|"{"cellLocalId": 11561}"|(select id from anchor where name='ran-network-simulation')|80|(select id from dataspace where name='NFP-Operational')|null
+83|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11562"]/attributes|"{"cellLocalId": 11562}"|(select id from anchor where name='ran-network-simulation')|82|(select id from dataspace where name='NFP-Operational')|null
+85|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="14655"]/attributes|"{"cellLocalId": 14655}"|(select id from anchor where name='ran-network-simulation')|84|(select id from dataspace where name='NFP-Operational')|null
+87|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="14656"]/attributes|"{"cellLocalId": 14656}"|(select id from anchor where name='ran-network-simulation')|86|(select id from dataspace where name='NFP-Operational')|null
+89|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="13910"]/attributes|"{"cellLocalId": 13910}"|(select id from anchor where name='ran-network-simulation')|88|(select id from dataspace where name='NFP-Operational')|null
+91|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="10896"]/attributes|"{"cellLocalId": 10896}"|(select id from anchor where name='ran-network-simulation')|90|(select id from dataspace where name='NFP-Operational')|null
+93|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="10897"]/attributes|"{"cellLocalId": 10897}"|(select id from anchor where name='ran-network-simulation')|92|(select id from dataspace where name='NFP-Operational')|null
+95|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11568"]/attributes|"{"cellLocalId": 11568}"|(select id from anchor where name='ran-network-simulation')|94|(select id from dataspace where name='NFP-Operational')|null
+97|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15548"]/attributes|"{"cellLocalId": 15548}"|(select id from anchor where name='ran-network-simulation')|96|(select id from dataspace where name='NFP-Operational')|null
+99|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="11569"]/attributes|"{"cellLocalId": 11569}"|(select id from anchor where name='ran-network-simulation')|98|(select id from dataspace where name='NFP-Operational')|null
+101|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="14427"]/attributes|"{"cellLocalId": 14427}"|(select id from anchor where name='ran-network-simulation')|100|(select id from dataspace where name='NFP-Operational')|null
+103|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="15549"]/attributes|"{"cellLocalId": 15549}"|(select id from anchor where name='ran-network-simulation')|102|(select id from dataspace where name='NFP-Operational')|null
+105|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUCPFunction[@idGNBCUCPFunction="cucpserver2"]/NRCellCU[@idNRCellCU="13905"]/attributes|"{"cellLocalId": 13905}"|(select id from anchor where name='ran-network-simulation')|104|(select id from dataspace where name='NFP-Operational')|null
+107|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/attributes|"{"gNBDUId": 4, "gNBDUName": "gnduserver4", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|106|(select id from dataspace where name='NFP-Operational')|null
+108|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="10896"]|"{"idNRCellDU": "10896"}"|(select id from anchor where name='ran-network-simulation')|106|(select id from dataspace where name='NFP-Operational')|null
+110|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11568"]|"{"idNRCellDU": "11568"}"|(select id from anchor where name='ran-network-simulation')|106|(select id from dataspace where name='NFP-Operational')|null
+112|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11561"]|"{"idNRCellDU": "11561"}"|(select id from anchor where name='ran-network-simulation')|106|(select id from dataspace where name='NFP-Operational')|null
+114|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11569"]|"{"idNRCellDU": "11569"}"|(select id from anchor where name='ran-network-simulation')|106|(select id from dataspace where name='NFP-Operational')|null
+116|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11562"]|"{"idNRCellDU": "11562"}"|(select id from anchor where name='ran-network-simulation')|106|(select id from dataspace where name='NFP-Operational')|null
+109|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="10896"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 10896}"|(select id from anchor where name='ran-network-simulation')|108|(select id from dataspace where name='NFP-Operational')|null
+111|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11568"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 11568}"|(select id from anchor where name='ran-network-simulation')|110|(select id from dataspace where name='NFP-Operational')|null
+113|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11561"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 11561}"|(select id from anchor where name='ran-network-simulation')|112|(select id from dataspace where name='NFP-Operational')|null
+115|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11569"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 11569}"|(select id from anchor where name='ran-network-simulation')|114|(select id from dataspace where name='NFP-Operational')|null
+117|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="4"]/NRCellDU[@idNRCellDU="11562"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 11562}"|(select id from anchor where name='ran-network-simulation')|116|(select id from dataspace where name='NFP-Operational')|null
+119|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/attributes|"{"gNBDUId": 5, "gNBDUName": "gnduserver5", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|118|(select id from dataspace where name='NFP-Operational')|null
+120|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="13910"]|"{"idNRCellDU": "13910"}"|(select id from anchor where name='ran-network-simulation')|118|(select id from dataspace where name='NFP-Operational')|null
+122|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="10897"]|"{"idNRCellDU": "10897"}"|(select id from anchor where name='ran-network-simulation')|118|(select id from dataspace where name='NFP-Operational')|null
+124|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="14655"]|"{"idNRCellDU": "14655"}"|(select id from anchor where name='ran-network-simulation')|118|(select id from dataspace where name='NFP-Operational')|null
+126|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="14656"]|"{"idNRCellDU": "14656"}"|(select id from anchor where name='ran-network-simulation')|118|(select id from dataspace where name='NFP-Operational')|null
+128|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="13905"]|"{"idNRCellDU": "13905"}"|(select id from anchor where name='ran-network-simulation')|118|(select id from dataspace where name='NFP-Operational')|null
+121|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="13910"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 13910}"|(select id from anchor where name='ran-network-simulation')|120|(select id from dataspace where name='NFP-Operational')|null
+123|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="10897"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 10897}"|(select id from anchor where name='ran-network-simulation')|122|(select id from dataspace where name='NFP-Operational')|null
+125|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="14655"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 14655}"|(select id from anchor where name='ran-network-simulation')|124|(select id from dataspace where name='NFP-Operational')|null
+127|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="14656"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 14656}"|(select id from anchor where name='ran-network-simulation')|126|(select id from dataspace where name='NFP-Operational')|null
+129|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="5"]/NRCellDU[@idNRCellDU="13905"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 13905}"|(select id from anchor where name='ran-network-simulation')|128|(select id from dataspace where name='NFP-Operational')|null
+131|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/attributes|"{"gNBDUId": 6, "gNBDUName": "gnduserver6", "gNBIdLength": 32}"|(select id from anchor where name='ran-network-simulation')|130|(select id from dataspace where name='NFP-Operational')|null
+132|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15548"]|"{"idNRCellDU": "15548"}"|(select id from anchor where name='ran-network-simulation')|130|(select id from dataspace where name='NFP-Operational')|null
+134|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="14427"]|"{"idNRCellDU": "14427"}"|(select id from anchor where name='ran-network-simulation')|130|(select id from dataspace where name='NFP-Operational')|null
+136|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15549"]|"{"idNRCellDU": "15549"}"|(select id from anchor where name='ran-network-simulation')|130|(select id from dataspace where name='NFP-Operational')|null
+138|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15360"]|"{"idNRCellDU": "15360"}"|(select id from anchor where name='ran-network-simulation')|130|(select id from dataspace where name='NFP-Operational')|null
+140|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15361"]|"{"idNRCellDU": "15361"}"|(select id from anchor where name='ran-network-simulation')|130|(select id from dataspace where name='NFP-Operational')|null
+133|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15548"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15548}"|(select id from anchor where name='ran-network-simulation')|132|(select id from dataspace where name='NFP-Operational')|null
+135|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="14427"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 14427}"|(select id from anchor where name='ran-network-simulation')|134|(select id from dataspace where name='NFP-Operational')|null
+137|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15549"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15549}"|(select id from anchor where name='ran-network-simulation')|136|(select id from dataspace where name='NFP-Operational')|null
+139|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15360"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15360}"|(select id from anchor where name='ran-network-simulation')|138|(select id from dataspace where name='NFP-Operational')|null
+141|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBDUFunction[@idGNBDUFunction="6"]/NRCellDU[@idNRCellDU="15361"]/attributes|"{"nRPCI": 12, "nRTAC": 310, "cellLocalId": 15361}"|(select id from anchor where name='ran-network-simulation')|140|(select id from dataspace where name='NFP-Operational')|null
+143|/cps-ran-schema/NearRTRIC[@idNearRTRIC="22"]/GNBCUUPFunction[@idGNBCUUPFunction="2222"]/attributes|"{"gNBId": 98763}"|(select id from anchor where name='ran-network-simulation')|142|(select id from dataspace where name='NFP-Operational')|null
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/schema_set.csv b/cps-ri/src/main/resources/changelog/db/changes/data/schema_set.csv
new file mode 100644 (file)
index 0000000..39de8a4
--- /dev/null
@@ -0,0 +1,2 @@
+name|dataspace_id
+cps-ran-schema-model|(select id from dataspace where name='NFP-Operational')
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/schema_set_yang_resources.csv b/cps-ri/src/main/resources/changelog/db/changes/data/schema_set_yang_resources.csv
new file mode 100644 (file)
index 0000000..9a258c2
--- /dev/null
@@ -0,0 +1,4 @@
+schema_set_id|yang_resource_id
+(select id from schema_set where name='cps-ran-schema-model')|"(select id from yang_resource where name='ietf-inet-types.yang')"
+(select id from schema_set where name='cps-ran-schema-model')|(select id from yang_resource where name='cps-ran-schema-model2021-01-28.yang')
+(select id from schema_set where name='cps-ran-schema-model')|(select id from yang_resource where name='ietf-yang-types.yang')
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/yang_resource.csv b/cps-ri/src/main/resources/changelog/db/changes/data/yang_resource.csv
new file mode 100644 (file)
index 0000000..4dd3127
--- /dev/null
@@ -0,0 +1,2236 @@
+name|content|checksum
+ietf-inet-types.yang|"module ietf-inet-types {
+
+  namespace \"urn:ietf:params:xml:ns:yang:ietf-inet-types\";
+  prefix \"inet\";
+
+  organization
+   \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";
+
+  contact
+   \"WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>\";
+
+  description
+   \"This module contains a collection of generally useful derived
+    YANG data types for Internet addresses and related things.
+
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust''s Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.\";
+
+  revision 2013-07-15 {
+    description
+     \"This revision adds the following new data types:
+      - ip-address-no-zone
+      - ipv4-address-no-zone
+      - ipv6-address-no-zone\";
+    reference
+     \"RFC 6991: Common YANG Data Types\";
+  }
+
+  revision 2010-09-24 {
+    description
+     \"Initial revision.\";
+    reference
+     \"RFC 6021: Common YANG Data Types\";
+  }
+
+  /*** collection of types related to protocol fields ***/
+
+  typedef ip-version {
+    type enumeration {
+      enum unknown {
+        value \"0\";
+        description
+         \"An unknown or unspecified version of the Internet
+          protocol.\";
+      }
+      enum ipv4 {
+        value \"1\";
+        description
+         \"The IPv4 protocol as defined in RFC 791.\";
+      }
+      enum ipv6 {
+        value \"2\";
+        description
+         \"The IPv6 protocol as defined in RFC 2460.\";
+      }
+    }
+    description
+     \"This value represents the version of the IP protocol.
+
+      In the value set and its semantics, this type is equivalent
+      to the InetVersion textual convention of the SMIv2.\";
+    reference
+     \"RFC  791: Internet Protocol
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
+      RFC 4001: Textual Conventions for Internet Network Addresses\";
+  }
+
+  typedef dscp {
+    type uint8 {
+      range \"0..63\";
+    }
+    description
+     \"The dscp type represents a Differentiated Services Code Point
+      that may be used for marking packets in a traffic stream.
+      In the value set and its semantics, this type is equivalent
+      to the Dscp textual convention of the SMIv2.\";
+    reference
+     \"RFC 3289: Management Information Base for the Differentiated
+                Services Architecture
+      RFC 2474: Definition of the Differentiated Services Field
+                (DS Field) in the IPv4 and IPv6 Headers
+      RFC 2780: IANA Allocation Guidelines For Values In
+                the Internet Protocol and Related Headers\";
+  }
+
+  typedef ipv6-flow-label {
+    type uint32 {
+      range \"0..1048575\";
+    }
+    description
+     \"The ipv6-flow-label type represents the flow identifier or Flow
+      Label in an IPv6 packet header that may be used to
+      discriminate traffic flows.
+
+      In the value set and its semantics, this type is equivalent
+      to the IPv6FlowLabel textual convention of the SMIv2.\";
+    reference
+     \"RFC 3595: Textual Conventions for IPv6 Flow Label
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification\";
+  }
+
+  typedef port-number {
+    type uint16 {
+      range \"0..65535\";
+    }
+    description
+     \"The port-number type represents a 16-bit port number of an
+      Internet transport-layer protocol such as UDP, TCP, DCCP, or
+      SCTP.  Port numbers are assigned by IANA.  A current list of
+      all assignments is available from <http://www.iana.org/>.
+
+      Note that the port number value zero is reserved by IANA.  In
+      situations where the value zero does not make sense, it can
+      be excluded by subtyping the port-number type.
+      In the value set and its semantics, this type is equivalent
+      to the InetPortNumber textual convention of the SMIv2.\";
+    reference
+     \"RFC  768: User Datagram Protocol
+      RFC  793: Transmission Control Protocol
+      RFC 4960: Stream Control Transmission Protocol
+      RFC 4340: Datagram Congestion Control Protocol (DCCP)
+      RFC 4001: Textual Conventions for Internet Network Addresses\";
+  }
+
+  /*** collection of types related to autonomous systems ***/
+
+  typedef as-number {
+    type uint32;
+    description
+     \"The as-number type represents autonomous system numbers
+      which identify an Autonomous System (AS).  An AS is a set
+      of routers under a single technical administration, using
+      an interior gateway protocol and common metrics to route
+      packets within the AS, and using an exterior gateway
+      protocol to route packets to other ASes.  IANA maintains
+      the AS number space and has delegated large parts to the
+      regional registries.
+
+      Autonomous system numbers were originally limited to 16
+      bits.  BGP extensions have enlarged the autonomous system
+      number space to 32 bits.  This type therefore uses an uint32
+      base type without a range restriction in order to support
+      a larger autonomous system number space.
+
+      In the value set and its semantics, this type is equivalent
+      to the InetAutonomousSystemNumber textual convention of
+      the SMIv2.\";
+    reference
+     \"RFC 1930: Guidelines for creation, selection, and registration
+                of an Autonomous System (AS)
+      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
+      RFC 4001: Textual Conventions for Internet Network Addresses
+      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
+                Number Space\";
+  }
+
+  /*** collection of types related to IP addresses and hostnames ***/
+
+  typedef ip-address {
+    type union {
+      type inet:ipv4-address;
+      type inet:ipv6-address;
+    }
+    description
+     \"The ip-address type represents an IP address and is IP
+      version neutral.  The format of the textual representation
+      implies the IP version.  This type supports scoped addresses
+      by allowing zone identifiers in the address format.\";
+    reference
+     \"RFC 4007: IPv6 Scoped Address Architecture\";
+  }
+
+  typedef ipv4-address {
+    type string {
+      pattern
+        ''(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}''
+      +  ''([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])''
+      + ''(%[p{N}p{L}]+)?'';
+    }
+    description
+      \"The ipv4-address type represents an IPv4 address in
+       dotted-quad notation.  The IPv4 address may include a zone
+       index, separated by a % sign.
+
+       The zone index is used to disambiguate identical address
+       values.  For link-local addresses, the zone index will
+       typically be the interface index number or the name of an
+       interface.  If the zone index is not present, the default
+       zone of the device will be used.
+
+       The canonical format for the zone index is the numerical
+       format\";
+  }
+
+  typedef ipv6-address {
+    type string {
+      pattern ''((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}''
+            + ''((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|''
+            + ''(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]).){3}''
+            + ''(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))''
+            + ''(%[p{N}p{L}]+)?'';
+      pattern ''(([^:]+:){6}(([^:]+:[^:]+)|(.*..*)))|''
+            + ''((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)''
+            + ''(%.+)?'';
+    }
+    description
+     \"The ipv6-address type represents an IPv6 address in full,
+      mixed, shortened, and shortened-mixed notation.  The IPv6
+      address may include a zone index, separated by a % sign.
+
+      The zone index is used to disambiguate identical address
+      values.  For link-local addresses, the zone index will
+      typically be the interface index number or the name of an
+      interface.  If the zone index is not present, the default
+      zone of the device will be used.
+
+      The canonical format of IPv6 addresses uses the textual
+      representation defined in Section 4 of RFC 5952.  The
+      canonical format for the zone index is the numerical
+      format as described in Section 11.2 of RFC 4007.\";
+    reference
+     \"RFC 4291: IP Version 6 Addressing Architecture
+      RFC 4007: IPv6 Scoped Address Architecture
+      RFC 5952: A Recommendation for IPv6 Address Text
+                Representation\";
+  }
+
+  typedef ip-address-no-zone {
+    type union {
+      type inet:ipv4-address-no-zone;
+      type inet:ipv6-address-no-zone;
+    }
+    description
+     \"The ip-address-no-zone type represents an IP address and is
+      IP version neutral.  The format of the textual representation
+      implies the IP version.  This type does not support scoped
+      addresses since it does not allow zone identifiers in the
+      address format.\";
+    reference
+     \"RFC 4007: IPv6 Scoped Address Architecture\";
+  }
+
+  typedef ipv4-address-no-zone {
+    type inet:ipv4-address {
+      pattern ''[0-9.]*'';
+    }
+    description
+      \"An IPv4 address without a zone index.  This type, derived from
+       ipv4-address, may be used in situations where the zone is
+       known from the context and hence no zone index is needed.\";
+  }
+
+  typedef ipv6-address-no-zone {
+    type inet:ipv6-address {
+      pattern ''[0-9a-fA-F:.]*'';
+    }
+    description
+      \"An IPv6 address without a zone index.  This type, derived from
+       ipv6-address, may be used in situations where the zone is
+       known from the context and hence no zone index is needed.\";
+    reference
+     \"RFC 4291: IP Version 6 Addressing Architecture
+      RFC 4007: IPv6 Scoped Address Architecture
+      RFC 5952: A Recommendation for IPv6 Address Text
+                Representation\";
+  }
+
+  typedef ip-prefix {
+    type union {
+      type inet:ipv4-prefix;
+      type inet:ipv6-prefix;
+    }
+    description
+     \"The ip-prefix type represents an IP prefix and is IP
+      version neutral.  The format of the textual representations
+      implies the IP version.\";
+  }
+
+  typedef ipv4-prefix {
+    type string {
+      pattern
+         ''(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}''
+       +  ''([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])''
+       + ''/(([0-9])|([1-2][0-9])|(3[0-2]))'';
+    }
+    description
+     \"The ipv4-prefix type represents an IPv4 address prefix.
+      The prefix length is given by the number following the
+      slash character and must be less than or equal to 32.
+
+      A prefix length value of n corresponds to an IP address
+      mask that has n contiguous 1-bits from the most
+      significant bit (MSB) and all other bits set to 0.
+
+      The canonical format of an IPv4 prefix has all bits of
+      the IPv4 address set to zero that are not part of the
+      IPv4 prefix.\";
+  }
+
+  typedef ipv6-prefix {
+    type string {
+      pattern ''((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}''
+            + ''((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|''
+            + ''(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]).){3}''
+            + ''(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))''
+            + ''(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'';
+      pattern ''(([^:]+:){6}(([^:]+:[^:]+)|(.*..*)))|''
+            + ''((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)''
+            + ''(/.+)'';
+    }
+    description
+     \"The ipv6-prefix type represents an IPv6 address prefix.
+      The prefix length is given by the number following the
+      slash character and must be less than or equal to 128.
+
+      A prefix length value of n corresponds to an IP address
+      mask that has n contiguous 1-bits from the most
+      significant bit (MSB) and all other bits set to 0.
+
+      The IPv6 address should have all bits that do not belong
+      to the prefix set to zero.
+
+      The canonical format of an IPv6 prefix has all bits of
+      the IPv6 address set to zero that are not part of the
+      IPv6 prefix.  Furthermore, the IPv6 address is represented
+      as defined in Section 4 of RFC 5952.\";
+    reference
+     \"RFC 5952: A Recommendation for IPv6 Address Text
+                Representation\";
+  }
+
+  /*** collection of domain name and URI types ***/
+
+  typedef domain-name {
+    type string {
+      length \"1..253\";
+      pattern
+        ''((([a-zA-Z0-9_]([a-zA-Z0-9-_]){0,61})?[a-zA-Z0-9].)*''
+      + ''([a-zA-Z0-9_]([a-zA-Z0-9-_]){0,61})?[a-zA-Z0-9].?)''
+      + ''|.'';
+    }
+    description
+     \"The domain-name type represents a DNS domain name.  The
+      name SHOULD be fully qualified whenever possible.
+
+      Internet domain names are only loosely specified.  Section
+      3.5 of RFC 1034 recommends a syntax (modified in Section
+      2.1 of RFC 1123).  The pattern above is intended to allow
+      for current practice in domain name use, and some possible
+      future expansion.  It is designed to hold various types of
+      domain names, including names used for A or AAAA records
+      (host names) and other records, such as SRV records.  Note
+      that Internet host names have a stricter syntax (described
+      in RFC 952) than the DNS recommendations in RFCs 1034 and
+      1123, and that systems that want to store host names in
+      schema nodes using the domain-name type are recommended to
+      adhere to this stricter standard to ensure interoperability.
+
+      The encoding of DNS names in the DNS protocol is limited
+      to 255 characters.  Since the encoding consists of labels
+      prefixed by a length bytes and there is a trailing NULL
+      byte, only 253 characters can appear in the textual dotted
+      notation.
+
+      The description clause of schema nodes using the domain-name
+      type MUST describe when and how these names are resolved to
+      IP addresses.  Note that the resolution of a domain-name value
+      may require to query multiple DNS records (e.g., A for IPv4
+      and AAAA for IPv6).  The order of the resolution process and
+      which DNS record takes precedence can either be defined
+      explicitly or may depend on the configuration of the
+      resolver.
+
+      Domain-name values use the US-ASCII encoding.  Their canonical
+      format uses lowercase US-ASCII characters.  Internationalized
+      domain names MUST be A-labels as per RFC 5890.\";
+    reference
+     \"RFC  952: DoD Internet Host Table Specification
+      RFC 1034: Domain Names - Concepts and Facilities
+      RFC 1123: Requirements for Internet Hosts -- Application
+                and Support
+      RFC 2782: A DNS RR for specifying the location of services
+                (DNS SRV)
+      RFC 5890: Internationalized Domain Names in Applications
+                (IDNA): Definitions and Document Framework\";
+  }
+
+  typedef host {
+    type union {
+      type inet:ip-address;
+      type inet:domain-name;
+    }
+    description
+     \"The host type represents either an IP address or a DNS
+      domain name.\";
+  }
+
+  typedef uri {
+    type string;
+    description
+     \"The uri type represents a Uniform Resource Identifier
+      (URI) as defined by STD 66.
+
+      Objects using the uri type MUST be in US-ASCII encoding,
+      and MUST be normalized as described by RFC 3986 Sections
+      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
+      percent-encoding is removed, and all case-insensitive
+      characters are set to lowercase except for hexadecimal
+      digits, which are normalized to uppercase as described in
+      Section 6.2.2.1.
+
+      The purpose of this normalization is to help provide
+      unique URIs.  Note that this normalization is not
+      sufficient to provide uniqueness.  Two URIs that are
+      textually distinct after this normalization may still be
+      equivalent.
+
+      Objects using the uri type may restrict the schemes that
+      they permit.  For example, ''data:'' and ''urn:'' schemes
+      might not be appropriate.
+
+      A zero-length URI is not a valid URI.  This can be used to
+      express ''URI absent'' where required.
+
+      In the value set and its semantics, this type is equivalent
+      to the Uri SMIv2 textual convention defined in RFC 5017.\";
+    reference
+     \"RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
+      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
+                Group: Uniform Resource Identifiers (URIs), URLs,
+                and Uniform Resource Names (URNs): Clarifications
+                and Recommendations
+      RFC 5017: MIB Textual Conventions for Uniform Resource
+                Identifiers (URIs)\";
+  }
+
+}"|fd06e465f26f1e7d0253bbf77e7e55e1
+cps-ran-schema-model2021-01-28.yang|"module cps-ran-schema-model {
+  yang-version 1.1;
+  namespace \"org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model\";
+  prefix rn;
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+  import ietf-yang-types {
+    prefix yang;
+  }
+
+  organization
+    \"Open Network Automation Platform - ONAP
+     <https://www.onap.org>\";
+  contact
+    \"Editors:
+       Sandeep Shah
+       <mailto:sandeep.shah@ibm.com>
+
+       Swaminathan Seetharaman
+       <mailto:swaminathan.seetharaman@wipro.com>\";
+  description
+    \"This module contains a collection of YANG definitions for capturing
+     relationships among managed elements of the radio access Network
+     to be stored in ONAP CPS platform.
+
+     Copyright 2020-2021 IBM.
+
+     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.\";
+
+  revision 2021-01-28 {
+    description
+      \"CPS RAN Network YANG Model for ONAP/O-RAN POC\";
+    reference
+      \"https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin\";
+  }
+
+  typedef usageState {
+    type enumeration {
+      enum IDLE {
+        description
+          \"TODO\";
+      }
+      enum ACTIVE {
+        description
+          \"TODO\";
+      }
+      enum BUSY {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"It describes whether or not the resource is actively in
+       use at a specific instant, and if so, whether or not it has spare
+       capacity for additional users at that instant. The value is READ-ONLY.\";
+    reference
+      \"ITU T Recommendation X.731\";
+  }
+
+  typedef Mcc {
+    type string;
+    description
+      \"The mobile country code consists of three decimal digits,
+       The first digit of the mobile country code identifies the geographic
+       region (the digits 1 and 8 are not used):\";
+    reference
+      \"3GPP TS 23.003 subclause 2.2 and 12.1\";
+  }
+
+  typedef Mnc {
+    type string;
+    description
+      \"The mobile network code consists of two or three
+       decimal digits (for example: MNC of 001 is not the same as MNC of 01)\";
+    reference
+      \"3GPP TS 23.003 subclause 2.2 and 12.1\";
+  }
+
+  typedef Nci {
+    type string;
+    description
+      \"NR Cell Identity. The NCI shall be of fixed length of 36 bits
+       and shall be coded using full hexadecimal representation.
+       The exact coding of the NCI is the responsibility of each PLMN operator\";
+    reference
+      \"TS 23.003\";
+  }
+
+  typedef OperationalState {
+    type enumeration {
+      enum DISABLED {
+        value 0;
+        description
+          \"The resource is totally inoperable.\";
+      }
+      enum ENABLED {
+        value 1;
+        description
+          \"The resource is partially or fully operable.\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"3GPP TS 28.625 and ITU-T X.731\";
+  }
+
+  typedef AvailabilityStatus {
+    type enumeration {
+      enum IN_TEST {
+        description
+          \"TODO\";
+      }
+      enum FAILED {
+        description
+          \"TODO\";
+      }
+      enum POWER_OFF {
+        description
+          \"TODO\";
+      }
+      enum OFF_LINE {
+        description
+          \"TODO\";
+      }
+      enum OFF_DUTY {
+        description
+          \"TODO\";
+      }
+      enum DEPENDENCY {
+        description
+          \"TODO\";
+      }
+      enum DEGRADED {
+        description
+          \"TODO\";
+      }
+      enum NOT_INSTALLED {
+        description
+          \"TODO\";
+      }
+      enum LOG_FULL {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef CellState {
+    type enumeration {
+      enum IDLE {
+        description
+          \"TODO\";
+      }
+      enum INACTIVE {
+        description
+          \"TODO\";
+      }
+      enum ACTIVE {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef SNssai {
+    type string;
+    description
+      \"Single Network Slice Selection Assistance Information.\";
+    reference
+      \"TS 23.501 clause 5.15.2\";
+  }
+
+  typedef Sst {
+    type uint8;
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef Nrpci {
+    type uint32;
+    description
+      \"Physical Cell Identity (PCI) of the NR cell.\";
+    reference
+      \"TS 36.211 subclause 6.11\";
+  }
+
+  typedef Tac {
+    type int32 {
+      range \"0..16777215\";
+    }
+    description
+      \"Tracking Area Code\";
+    reference
+      \"TS 23.003 clause 19.4.2.3\";
+  }
+
+  typedef AmfRegionId {
+    type string;
+    description
+      \"\";
+    reference
+      \"clause 2.10.1 of 3GPP TS 23.003\";
+  }
+
+  typedef AmfSetId {
+    type string;
+    description
+      \"\";
+    reference
+      \"clause 2.10.1 of 3GPP TS 23.003\";
+  }
+
+  typedef AmfPointer {
+    type string;
+    description
+      \"\";
+    reference
+      \"clause 2.10.1 of 3GPP TS 23.003\";
+  }
+
+  // type definitions especially for core NFs
+
+  typedef NfType {
+    type enumeration {
+      enum NRF {
+        description
+          \"TODO\";
+      }
+      enum UDM {
+        description
+          \"TODO\";
+      }
+      enum AMF {
+        description
+          \"TODO\";
+      }
+      enum SMF {
+        description
+          \"TODO\";
+      }
+      enum AUSF {
+        description
+          \"TODO\";
+      }
+      enum NEF {
+        description
+          \"TODO\";
+      }
+      enum PCF {
+        description
+          \"TODO\";
+      }
+      enum SMSF {
+        description
+          \"TODO\";
+      }
+      enum NSSF {
+        description
+          \"TODO\";
+      }
+      enum UDR {
+        description
+          \"TODO\";
+      }
+      enum LMF {
+        description
+          \"TODO\";
+      }
+      enum GMLC {
+        description
+          \"TODO\";
+      }
+      enum 5G_EIR {
+        description
+          \"TODO\";
+      }
+      enum SEPP {
+        description
+          \"TODO\";
+      }
+      enum UPF {
+        description
+          \"TODO\";
+      }
+      enum N3IWF {
+        description
+          \"TODO\";
+      }
+      enum AF {
+        description
+          \"TODO\";
+      }
+      enum UDSF {
+        description
+          \"TODO\";
+      }
+      enum BSF {
+        description
+          \"TODO\";
+      }
+      enum CHF {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+  }
+
+  typedef NotificationType {
+    type enumeration {
+      enum N1_MESSAGES {
+        description
+          \"TODO\";
+      }
+      enum N2_INFORMATION {
+        description
+          \"TODO\";
+      }
+      enum LOCATION_NOTIFICATION {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+  }
+
+  typedef Load {
+    type uint8 {
+      range \"0..100\";
+    }
+    description
+      \"Latest known load information of the NF, percentage \";
+  }
+
+  typedef N1MessageClass {
+    type enumeration {
+      enum 5GMM {
+        description
+          \"TODO\";
+      }
+      enum SM {
+        description
+          \"TODO\";
+      }
+      enum LPP {
+        description
+          \"TODO\";
+      }
+      enum SMS {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+  }
+
+  typedef N2InformationClass {
+    type enumeration {
+      enum SM {
+        description
+          \"TODO\";
+      }
+      enum NRPPA {
+        description
+          \"TODO\";
+      }
+      enum PWS {
+        description
+          \"TODO\";
+      }
+      enum PWS_BCAL {
+        description
+          \"TODO\";
+      }
+      enum PWS_RF {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef NsiId {
+    type string;
+    description
+      \"TODO\";
+  }
+
+  typedef UeMobilityLevel {
+    type enumeration {
+      enum STATIONARY {
+        description
+          \"TODO\";
+      }
+      enum NOMADIC {
+        description
+          \"TODO\";
+      }
+      enum RESTRICTED_MOBILITY {
+        description
+          \"TODO\";
+      }
+      enum FULLY_MOBILITY {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef ResourceSharingLevel {
+    type enumeration {
+      enum SHARED {
+        description
+          \"TODO\";
+      }
+      enum NOT_SHARED {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef TxDirection {
+    type enumeration {
+      enum DL {
+        description
+          \"TODO\";
+      }
+      enum UL {
+        description
+          \"TODO\";
+      }
+      enum DL_AND_UL {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ?
+    type string;
+    description
+      \"Represents the international standard for the representation
+       of Distinguished Name (RFC 4512).
+       The format of the DistinguishedName REGEX is:
+       {AttributeType = AttributeValue}
+
+       AttributeType consists of alphanumeric and hyphen (OIDs not allowed).
+       All other characters are restricted.
+       The Attribute value cannot contain control characters or the
+       following characters : \ > < ; \" + , (Comma) and White space
+       The Attribute value can contain the following characters if they
+       are excaped : \ > < ; \" + , (Comma) and White space
+       The Attribute value can contain control characters if its an escaped
+       double digit hex number.
+       Examples could be
+       UID=nobody@example.com,DC=example,DC=com
+       CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US\";
+    reference
+      \"RFC 4512 Lightweight Directory Access Protocol (LDAP):
+             Directory Information Models\";
+  } // recheck regexp it doesn''t handle posix [:cntrl:]
+
+  typedef QOffsetRange {
+    type int8;
+    units \"dB\";
+    description
+      \"TODO\";
+    reference
+      \"TODO\";
+  }
+
+  typedef QuotaType {
+    type enumeration {
+      enum STRICT {
+        description
+          \"TODO\";
+      }
+      enum FLOAT {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+  }
+
+  typedef CyclicPrefix {
+    type enumeration {
+      enum NORMAL {
+        description
+          \"TODO\";
+      }
+      enum EXTENDED {
+        description
+          \"TODO\";
+      }
+    }
+    description
+      \"TODO\";
+  }
+
+  grouping PLMNInfo {
+    description
+      \"The PLMNInfo data type define a S-NSSAI member in a specific PLMNId, and it have
+       two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI). The PLMNId represents a data type that
+       is comprised of mcc (mobile country code) and mnc (mobile network code), (See TS 23.003
+       subclause 2.2 and 12.1) and S-NSSAI represents an data type, that is comprised of an SST
+       (Slice/Service type) and an optional SD (Slice Differentiator) field, (See TS 23.003 [13]).\";
+    uses PLMNId;
+    list sNSSAIList {
+      key \"sNssai\";
+      uses sNSSAIConfig;
+      description \"List of sNSSAIs\";
+    }
+  }
+
+  grouping ManagedNFProfile {
+    description
+      \"Defines profile for managed NF\";
+    reference
+      \"3GPP TS 23.501\";
+    leaf idx {
+      type uint32;
+      description
+        \"TODO\";
+      reference
+        \"3GPP TS 23.501\";
+    }
+    leaf nfInstanceID {
+      type yang:uuid;
+      config false;
+      mandatory false;
+      description
+        \"This parameter defines profile for managed NF.
+         The format of the NF Instance ID shall be a
+         Universally Unique Identifier (UUID) version 4,
+         as described in IETF RFC 4122 \";
+    }
+    leaf-list nfType {
+      type NfType;
+      config false;
+      min-elements 1;
+      description
+        \"Type of the Network Function\";
+    }
+    leaf hostAddr {
+      type inet:host;
+      mandatory false;
+      description
+        \"Host address of a NF\";
+    }
+    leaf authzInfo {
+      type string;
+      description
+        \"This parameter defines NF Specific Service authorization
+         information. It shall include the NF type (s) and NF realms/origins
+         allowed to consume NF Service(s) of NF Service Producer.\";
+      reference
+        \"See TS 23.501\";
+    }
+    leaf location {
+      type string;
+      description
+        \"Information about the location of the NF instance
+         (e.g. geographic location, data center) defined by operator\";
+      reference
+        \"TS 29.510\";
+    }
+    leaf capacity {
+      type uint16;
+      mandatory false;
+      description
+        \"This parameter defines static capacity information
+         in the range of 0-65535, expressed as a weight relative to other
+         NF instances of the same type; if capacity is also present in the
+         nfServiceList parameters, those will have precedence over this value.\";
+      reference
+        \"TS 29.510\";
+    }
+    leaf nFSrvGroupId {
+      type string;
+      description
+        \"This parameter defines identity of the group that is
+         served by the NF instance.
+         May be config false or true depending on the ManagedFunction.
+         Config=true for Udrinfo. Config=false for UdmInfo and AusfInfo.
+         Shall be present if ../nfType = UDM or AUSF or UDR. \";
+      reference
+        \"TS 29.510\";
+    }
+    leaf-list supportedDataSetIds {
+      type enumeration {
+        enum SUBSCRIPTION {
+          description
+            \"TODO\";
+        }
+        enum POLICY {
+          description
+            \"TODO\";
+        }
+        enum EXPOSURE {
+          description
+            \"TODO\";
+        }
+        enum APPLICATION {
+          description
+            \"TODO\";
+        }
+      }
+      description
+        \"List of supported data sets in the UDR instance.
+         May be present if ../nfType = UDR\";
+      reference
+        \"TS 29.510\";
+    }
+    leaf-list smfServingAreas {
+      type string;
+      description
+        \"Defines the SMF service area(s) the UPF can serve.
+         Shall be present if ../nfType = UPF\";
+      reference
+        \"TS 29.510\";
+    }
+    leaf priority {
+      type uint16;
+      description
+        \"This parameter defines Priority (relative to other NFs
+         of the same type) in the range of 0-65535, to be used for NF selection;
+         lower values indicate a higher priority. If priority is also present
+         in the nfServiceList parameters, those will have precedence over
+         this value. Shall be present if ../nfType = AMF \";
+      reference
+        \"TS 29.510\";
+    }
+  }
+
+
+  grouping PLMNId {
+    description
+      \"TODO\";
+    reference
+      \"TS 23.658\";
+    leaf mcc {
+      type Mcc;
+      mandatory true;
+      description
+        \"TODO\";
+    }
+    leaf mnc {
+      type Mnc;
+      mandatory true;
+      description
+        \"TODO\";
+    }
+  }
+
+  grouping AmfIdentifier {
+    description
+      \"The AMFI is constructed from an AMF Region ID,
+       an AMF Set ID and an AMF Pointer.
+       The AMF Region ID identifies the region,
+       the AMF Set ID uniquely identifies the AMF Set within the AMF Region, and
+       the AMF Pointer uniquely identifies the AMF within the AMF Set. \";
+    leaf amfRegionId {
+      type AmfRegionId;
+      description
+        \"TODO\";
+    }
+    leaf amfSetId {
+      type AmfSetId;
+      description
+        \"TODO\";
+    }
+    leaf amfPointer {
+      type AmfPointer;
+      description
+        \"TODO\";
+    }
+  }
+
+  grouping DefaultNotificationSubscription {
+    description
+      \"TODO\";
+    leaf notificationType {
+      type NotificationType;
+      description
+        \"TODO\";
+    }
+    leaf callbackUri {
+      type inet:uri;
+      description
+        \"TODO\";
+    }
+    leaf n1MessageClass {
+      type N1MessageClass;
+      description
+        \"TODO\";
+    }
+    leaf n2InformationClass {
+      type N2InformationClass;
+      description
+        \"TODO\";
+    }
+  }
+
+  grouping Ipv4AddressRange {
+    description
+      \"TODO\";
+    leaf start {
+      type inet:ipv4-address;
+      description
+        \"TODO\";
+    }
+    leaf end {
+      type inet:ipv4-address;
+      description
+        \"TODO\";
+    }
+  }
+
+  grouping Ipv6PrefixRange {
+    description
+      \"TODO\";
+    leaf start {
+      type inet:ipv6-prefix;
+      description
+        \"TODO\";
+    }
+    leaf end {
+      type inet:ipv6-prefix;
+      description
+        \"TODO\";
+    }
+  }
+
+  grouping AddressWithVlan {
+    description
+      \"TODO\";
+    leaf ipAddress {
+      type inet:ip-address;
+      description
+        \"TODO\";
+    }
+    leaf vlanId {
+      type uint16;
+      description
+        \"TODO\";
+    }
+  }
+
+  grouping ManagedElementGroup {
+    description
+      \"Abstract class representing telecommunications resources.\";
+    leaf dnPrefix {
+      type DistinguishedName;
+      description
+        \"Provides naming context and splits the DN into a DN Prefix and Local DN\";
+    }
+    leaf userLabel {
+      type string;
+      description
+        \"A user-friendly name of this object.\";
+    }
+    leaf locationName {
+      type string;
+      config false;
+      description
+        \"The physical location (e.g. an address) of an entity\";
+    }
+    leaf-list managedBy {
+      type DistinguishedName;
+      config false;
+      description
+        \"Relates to the role played by ManagementSystem\";
+    }
+    leaf-list managedElementTypeList {
+      type string;
+      config false;
+      min-elements 1;
+      description
+        \"The type of functionality provided by the ManagedElement.
+         It may represent one ME functionality or a combination of
+         Two examples of allowed values are:
+         -  NodeB;
+         -  HLR, VLR.\";
+    }
+  } // Managed Element grouping
+
+  grouping NearRTRICGroup {
+    description
+      \"Abstract class representing Near RT RIC.\";
+    leaf dnPrefix {
+      type DistinguishedName;
+      description
+        \"Provides naming context and splits the DN into a DN Prefix and Local DN\";
+    }
+    leaf userLabel {
+      type string;
+      description
+        \"A user-friendly name of this object.\";
+    }
+    leaf locationName {
+      type string;
+      config false;
+      description
+        \"The physical location (e.g. an address) of an entity\";
+    }
+    leaf gNBId {
+          type int64 { range \"0..4294967295\"; }
+          config false;
+          description \"Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
+            is part of the NR Cell Identifier (NCI) of the gNB cells.\";
+          reference \"gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413\";
+        }
+
+       list pLMNInfoList {
+          uses PLMNInfo;
+          key \"mcc mnc\";
+          description \"The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC.\";
+        }
+    list RRMPolicyRatio {
+      key id;
+      leaf id {
+        type string;
+        description
+          \"Key leaf\";
+      }
+      container attributes {
+        uses RRMPolicyRatioGroup;
+      }
+      description \" The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+        inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
+        standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+        abstract RRMPolicy_ IOC. For details see subclause 4.3.36.\";
+    }
+
+  } // Near RT RIC grouping
+
+
+
+       grouping Configuration{
+               leaf configParameter{
+                       type string;
+                       description \"Type of the configuration parameter\";
+        }
+               leaf configValue{
+                       type int64;
+                       description \"Identifies the configuration to be done for the network elements under the NearRTRIC\";
+
+               }
+       }
+
+
+  grouping GNBDUFunctionGroup {
+    description
+      \"Represents the GNBDUFunction IOC.\";
+    reference
+      \"3GPP TS 28.541\";
+
+    leaf gNBId {
+      type int64 {
+        range \"0..4294967295\";
+      }
+      config false;
+      mandatory false;
+      description
+        \"Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
+         is part of the NR Cell Identifier (NCI) of the gNB cells.\";
+      reference
+        \"gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413\";
+    }
+    leaf gNBIdLength {
+      type int32 {
+        range \"22..32\";
+      }
+      mandatory false;
+      description
+        \"Indicates the number of bits for encoding the gNB ID.\";
+      reference
+        \"gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413\";
+    }
+    leaf gNBDUId {
+      type int64 {
+        range \"0..68719476735\";
+      }
+      mandatory false;
+      description
+        \"Uniquely identifies the DU at least within a gNB.\";
+      reference
+        \"3GPP TS 38.473\";
+    }
+    leaf gNBDUName {
+      type string {
+        length \"1..150\";
+      }
+      description
+        \"Identifies the Distributed Unit of an NR node\";
+      reference
+        \"3GPP TS 38.473\";
+    }
+    list RRMPolicyRatio {
+      key id;
+      leaf id {
+        type string;
+        description
+          \"Key leaf\";
+      }
+      container attributes {
+        uses RRMPolicyRatioGroup;
+      }
+      description \" The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+        inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
+        standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+        abstract RRMPolicy_ IOC. For details see subclause 4.3.36.\";
+    }
+  }
+
+  grouping NRCellDUGroup {
+    description
+      \"Represents the NRCellDU IOC.\";
+    reference
+      \"3GPP TS 28.541\";
+    list RRMPolicyRatio {
+      key id;
+      leaf id {
+        type string;
+        description
+          \"Key leaf\";
+      }
+      container attributes {
+        uses RRMPolicyRatioGroup;
+      }
+      description \" The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+        inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
+        standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+        abstract RRMPolicy_ IOC. For details see subclause 4.3.36.\";
+    }
+    leaf cellLocalId {
+      type int32 {
+        range \"0..16383\";
+      }
+      mandatory false;
+      description
+        \"Identifies an NR cell of a gNB. Together with the
+         corresponding gNB identifier in forms the NR Cell Identity (NCI).\";
+      reference
+        \"NCI in 3GPP TS 38.300\";
+    }
+    list pLMNInfoList {
+      key \"mcc mnc\";
+      min-elements 1;
+      description
+        \"The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that
+         can be served by the NR cell, and which S-NSSAIs that can be supported by the NR cell for
+         corresponding PLMN in case of network slicing feature is supported. The plMNId of the first
+         entry of the list is the PLMNId used to construct the nCGI for the NR cell.\";
+      uses PLMNInfo;
+    }
+    leaf nRPCI {
+      type int32 {
+        range \"0..1007\";
+      }
+      mandatory false;
+      description
+        \"The Physical Cell Identity (PCI) of the NR cell.\";
+      reference
+        \"3GPP TS 36.211\";
+    }
+    leaf nRTAC {
+      type Tac;
+      description
+        \"The common 5GS Tracking Area Code for the PLMNs.\";
+      reference
+        \"3GPP TS 23.003, 3GPP TS 38.473\";
+    }
+  } // grouping
+
+  grouping rRMPolicyMemberGroup {
+    description
+      \"TODO\";
+    uses PLMNId;
+    leaf sNSSAI {
+      type SNssai;
+      description
+        \"This data type represents an RRM Policy member that will be part of a
+         rRMPolicyMemberList. A RRMPolicyMember is defined by its pLMNId and sNSSAI (S-NSSAI).
+         The members in a rRMPolicyMemberList are assigned a specific amount of RRM resources
+         based on settings in RRMPolicy.\";
+    }
+  }
+
+  grouping RRMPolicyRatioGroup {
+
+    uses RRMPolicy_Group;    // Inherits RRMPolicy_
+
+    leaf quotaType {
+      type QuotaType;
+      mandatory false;
+      description \"The type of the quota which allows to allocate resources as
+        strictly usable for defined slice(s) (strict quota) or allows that
+        resources to be used by other slice(s) when defined slice(s) do not
+        need them (float quota).\";
+    }
+
+    leaf rRMPolicyMaxRatio {
+      type uint8;
+      mandatory false;
+      units percent;
+      description \"The RRM policy setting the maximum percentage of radio
+        resources to be allocated to the corresponding S-NSSAI list. This
+        quota can be strict or float quota. Strict quota means resources are
+        not allowed for other sNSSAIs even when they are not used by the
+        defined sNSSAIList. Float quota resources can be used by other sNSSAIs
+        when the defined sNSSAIList do not need them. Value 0 indicates that
+        there is no maximum limit.\";
+    }
+
+    leaf rRMPolicyMinRatio {
+      type uint8;
+      mandatory false;
+      units percent;
+      description \"The RRM policy setting the minimum percentage of radio
+        resources to be allocated to the corresponding S-NSSAI list. This
+        quota can be strict or float quota. Strict quota means resources are
+        not allowed for other sNSSAIs even when they are not used by the
+        defined sNSSAIList. Float quota resources can be used by other sNSSAIs
+        when the defined sNSSAIList do not need them. Value 0 indicates that
+        there is no minimum limit.\";
+    }
+    leaf rRMPolicyDedicatedRatio {
+      type uint8;
+      units percent;
+      description \"Dedicated Ration.\";
+      }
+    description \"Represents the RRMPolicyRatio concrete IOC.\";
+    }
+
+
+  grouping sNSSAIConfig{
+       leaf sNssai {
+        type string;
+        description \"s-NSSAI of a network slice.\";
+          reference \"3GPP TS 23.003\";
+      }
+        leaf status {
+        type string;
+        description \"status of s-NSSAI\";
+      }
+       list configData{
+               uses Configuration;
+               key \"configParameter\";
+               description \"List of configurations to be done at the network elements\";
+       }
+       }
+
+  grouping RRMPolicy_Group {
+    description
+      \"This IOC represents the properties of an abstract RRMPolicy. The RRMPolicy_ IOC
+       needs to be subclassed to be instantiated. It defines two attributes apart from those
+       inherited from Top IOC, the resourceType attribute defines type of resource (PRB, RRC
+       connected users, DRB usage etc.) and the rRMPolicyMemberList attribute defines the
+       RRMPolicyMember(s)that are subject to this policy. An RRM resource (defined in resourceType
+       attribute) is located in NRCellDU, NRCellCU, GNBDUFunction, GNBCUCPFunction or in
+       GNBCUUPFunction. The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+       inheritance in TS 28.541 Figure 4.2.1.2-1. This RRM framework allows adding new policies,
+       both standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+       abstract RRMPolicy_ IOC.\";
+    leaf resourceType {
+      type string;
+      mandatory false;
+      description
+        \"The resourceType attribute defines type of resource (PRB, RRC connected users,
+         DRB usage etc.) that is subject to policy. Valid values are ''PRB'', ''RRC'' or ''DRB''\";
+    }
+    list rRMPolicyMemberList {
+      key \"idx\";
+      leaf idx {
+        type uint32;
+        description
+          \"TODO\";
+      }
+      description
+        \"It represents the list of RRMPolicyMember (s) that the managed object
+         is supporting. A RRMPolicyMember <<dataType>> include the PLMNId <<dataType>>
+         and S-NSSAI <<dataType>>.\";
+      uses rRMPolicyMemberGroup;
+    }
+  } // grouping
+
+  grouping GNBCUUPFunctionGroup {
+    description
+      \"Represents the GNBCUUPFunction IOC.\";
+    reference
+      \"3GPP TS 28.541\";
+
+    list RRMPolicyRatio {
+      key id;
+      leaf id {
+        type string;
+        description
+          \"Key leaf\";
+      }
+      container attributes {
+        uses RRMPolicyRatioGroup;
+      }
+      description \" The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+        inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
+        standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+        abstract RRMPolicy_ IOC. For details see subclause 4.3.36.\";
+    }
+    leaf gNBCUUPId {
+      type uint64 {
+        range \"0..68719476735\";
+      }
+      config false;
+      mandatory false;
+      description
+        \"Identifies the gNB-CU-UP at least within a gNB-CU-CP\";
+      reference
+        \"''gNB-CU-UP ID'' in subclause 9.3.1.15 of 3GPP TS 38.463\";
+    }
+    leaf gNBId {
+      type int64 {
+      range \"0..4294967295\";
+    }
+      mandatory false;
+      description
+        \"Indicates the number of bits for encoding the gNB Id.\";
+      reference
+        \"gNB Id in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413\";
+    }
+    list pLMNInfoList {
+      key \"mcc mnc\";
+      description
+        \"The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that
+         can be served by the GNBCUUPFunction and which S-NSSAIs can be supported by the
+         GNBCUUPFunction for corresponding PLMN in case of network slicing feature is supported\";
+      uses PLMNInfo;
+    }
+  } // grouping
+
+  grouping GNBCUCPFunctionGroup {
+    description
+      \"Represents the GNBCUCPFunction IOC.\";
+    reference
+      \"3GPP TS 28.541\";
+    list RRMPolicyRatio {
+      key id;
+      leaf id {
+        type string;
+        description
+          \"Key leaf\";
+      }
+      container attributes {
+        uses RRMPolicyRatioGroup;
+      }
+      description \" The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+        inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
+        standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+        abstract RRMPolicy_ IOC. For details see subclause 4.3.36.\";
+    }
+    leaf gNBId {
+      type int64 {
+        range \"0..4294967295\";
+      }
+      mandatory false;
+      description
+        \"Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
+         is part of the NR Cell Identifier (NCI) of the gNB cells.\";
+      reference
+        \"gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413\";
+    }
+    leaf gNBIdLength {
+      type int32 {
+        range \"22..32\";
+      }
+      mandatory false;
+      description
+        \"Indicates the number of bits for encoding the gNB ID.\";
+      reference
+        \"gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413\";
+    }
+    leaf gNBCUName {
+      type string {
+        length \"1..150\";
+      }
+      mandatory false;
+      description
+        \"Identifies the Central Unit of an gNB.\";
+      reference
+        \"3GPP TS 38.473\";
+    }
+    list pLMNId {
+      key \"mcc mnc\";
+      min-elements 1;
+      max-elements 1;
+      description
+        \"The PLMN identifier to be used as part of the global RAN
+         node identity.\";
+      uses PLMNId;
+    }
+  } // grouping
+
+  grouping NRCellCUGroup {
+    description
+      \"Represents the NRCellCU IOC.\";
+    reference
+      \"3GPP TS 28.541\";
+    leaf cellLocalId {
+      type int32 {
+        range \"0..16383\";
+      }
+      mandatory false;
+      description
+        \"Identifies an NR cell of a gNB. Together with corresponding
+         gNB ID it forms the NR Cell Identifier (NCI).\";
+    }
+    list pLMNInfoList {
+      key \"mcc mnc\";
+      min-elements 1;
+      description
+        \"The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs
+         that can be served by the NR cell, and which S-NSSAIs that can be supported by the
+         NR cell for corresponding PLMN in case of network slicing feature is supported.\";
+      uses PLMNInfo;
+      // Note: Whether the attribute pLMNId in the pLMNInfo can be writable depends on the implementation.
+    }
+    list RRMPolicyRatio {
+      key id;
+      leaf id {
+        type string;
+        description
+          \"Key leaf\";
+      }
+      container attributes {
+        uses RRMPolicyRatioGroup;
+      }
+      description \" The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
+        inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
+        standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
+        abstract RRMPolicy_ IOC. For details see subclause 4.3.36.\";
+    }
+  } // grouping NRCellCUGroup
+
+  grouping NRCellRelationGroup {
+    description
+      \"Represents the NRCellRelation IOC.\";
+    reference
+      \"3GPP TS 28.541\";
+    leaf nRTCI {
+      type uint64;
+      description
+        \"Target NR Cell Identifier. It consists of NR Cell
+         Identifier (NCI) and Physical Cell Identifier of the target NR cell
+         (nRPCI).\";
+    "|0337045143fa2e592243243f82699b93
+ietf-yang-types.yang|"module ietf-yang-types {
+
+  namespace \"urn:ietf:params:xml:ns:yang:ietf-yang-types\";
+  prefix \"yang\";
+
+  organization
+   \"IETF NETMOD (NETCONF Data Modeling Language) Working Group\";
+
+  contact
+   \"WG Web:   <http://tools.ietf.org/wg/netmod/>
+    WG List:  <mailto:netmod@ietf.org>
+
+    WG Chair: David Kessens
+              <mailto:david.kessens@nsn.com>
+
+    WG Chair: Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>
+
+    Editor:   Juergen Schoenwaelder
+              <mailto:j.schoenwaelder@jacobs-university.de>\";
+
+  description
+   \"This module contains a collection of generally useful derived
+    YANG data types.
+
+    Copyright (c) 2013 IETF Trust and the persons identified as
+    authors of the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or
+    without modification, is permitted pursuant to, and subject
+    to the license terms contained in, the Simplified BSD License
+    set forth in Section 4.c of the IETF Trust''s Legal Provisions
+    Relating to IETF Documents
+    (http://trustee.ietf.org/license-info).
+
+    This version of this YANG module is part of RFC 6991; see
+    the RFC itself for full legal notices.\";
+
+  revision 2013-07-15 {
+    description
+     \"This revision adds the following new data types:
+      - yang-identifier
+      - hex-string
+      - uuid
+      - dotted-quad\";
+    reference
+     \"RFC 6991: Common YANG Data Types\";
+  }
+
+  revision 2010-09-24 {
+    description
+     \"Initial revision.\";
+    reference
+     \"RFC 6021: Common YANG Data Types\";
+  }
+
+  /*** collection of counter and gauge types ***/
+
+  typedef counter32 {
+    type uint32;
+    description
+     \"The counter32 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+
+      Counters have no defined ''initial'' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter32 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+
+      The counter32 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter32.
+
+      In the value set and its semantics, this type is equivalent
+      to the Counter32 type of the SMIv2.\";
+    reference
+     \"RFC 2578: Structure of Management Information Version 2
+                (SMIv2)\";
+  }
+
+  typedef zero-based-counter32 {
+    type yang:counter32;
+    default \"0\";
+    description
+     \"The zero-based-counter32 type represents a counter32
+      that has the defined ''initial'' value zero.
+
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^32-1 (4294967295 decimal), when it
+      wraps around and starts increasing again from zero.
+
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      ''initial'' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter32 textual convention of the SMIv2.\";
+    reference
+      \"RFC 4502: Remote Network Monitoring Management Information
+                 Base Version 2\";
+  }
+
+  typedef counter64 {
+    type uint64;
+    description
+     \"The counter64 type represents a non-negative integer
+      that monotonically increases until it reaches a
+      maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+
+      Counters have no defined ''initial'' value, and thus, a
+      single value of a counter has (in general) no information
+      content.  Discontinuities in the monotonically increasing
+      value normally occur at re-initialization of the
+      management system, and at other times as specified in the
+      description of a schema node using this type.  If such
+      other times can occur, for example, the creation of
+      a schema node of type counter64 at times other than
+      re-initialization, then a corresponding schema node
+      should be defined, with an appropriate type, to indicate
+      the last discontinuity.
+
+      The counter64 type should not be used for configuration
+      schema nodes.  A default statement SHOULD NOT be used in
+      combination with the type counter64.
+
+      In the value set and its semantics, this type is equivalent
+      to the Counter64 type of the SMIv2.\";
+    reference
+     \"RFC 2578: Structure of Management Information Version 2
+                (SMIv2)\";
+  }
+
+  typedef zero-based-counter64 {
+    type yang:counter64;
+    default \"0\";
+    description
+     \"The zero-based-counter64 type represents a counter64 that
+      has the defined ''initial'' value zero.
+
+
+
+
+      A schema node of this type will be set to zero (0) on creation
+      and will thereafter increase monotonically until it reaches
+      a maximum value of 2^64-1 (18446744073709551615 decimal),
+      when it wraps around and starts increasing again from zero.
+
+      Provided that an application discovers a new schema node
+      of this type within the minimum time to wrap, it can use the
+      ''initial'' value as a delta.  It is important for a management
+      station to be aware of this minimum time and the actual time
+      between polls, and to discard data if the actual time is too
+      long or there is no defined minimum time.
+
+      In the value set and its semantics, this type is equivalent
+      to the ZeroBasedCounter64 textual convention of the SMIv2.\";
+    reference
+     \"RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types\";
+  }
+
+  typedef gauge32 {
+    type uint32;
+    description
+     \"The gauge32 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^32-1 (4294967295 decimal), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge32 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge32 also decreases (increases).
+
+      In the value set and its semantics, this type is equivalent
+      to the Gauge32 type of the SMIv2.\";
+    reference
+     \"RFC 2578: Structure of Management Information Version 2
+                (SMIv2)\";
+  }
+
+  typedef gauge64 {
+    type uint64;
+    description
+     \"The gauge64 type represents a non-negative integer, which
+      may increase or decrease, but shall never exceed a maximum
+      value, nor fall below a minimum value.  The maximum value
+      cannot be greater than 2^64-1 (18446744073709551615), and
+      the minimum value cannot be smaller than 0.  The value of
+      a gauge64 has its maximum value whenever the information
+      being modeled is greater than or equal to its maximum
+      value, and has its minimum value whenever the information
+      being modeled is smaller than or equal to its minimum value.
+      If the information being modeled subsequently decreases
+      below (increases above) the maximum (minimum) value, the
+      gauge64 also decreases (increases).
+
+      In the value set and its semantics, this type is equivalent
+      to the CounterBasedGauge64 SMIv2 textual convention defined
+      in RFC 2856\";
+    reference
+     \"RFC 2856: Textual Conventions for Additional High Capacity
+                Data Types\";
+  }
+
+  /*** collection of identifier-related types ***/
+
+  typedef object-identifier {
+    type string {
+      pattern ''(([0-1](.[1-3]?[0-9]))|(2.(0|([1-9]d*))))''
+            + ''(.(0|([1-9]d*)))*'';
+    }
+    description
+     \"The object-identifier type represents administratively
+      assigned names in a registration-hierarchical-name tree.
+
+      Values of this type are denoted as a sequence of numerical
+      non-negative sub-identifier values.  Each sub-identifier
+      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
+      are separated by single dots and without any intermediate
+      whitespace.
+
+      The ASN.1 standard restricts the value space of the first
+      sub-identifier to 0, 1, or 2.  Furthermore, the value space
+      of the second sub-identifier is restricted to the range
+      0 to 39 if the first sub-identifier is 0 or 1.  Finally,
+      the ASN.1 standard requires that an object identifier
+      has always at least two sub-identifiers.  The pattern
+      captures these restrictions.
+
+      Although the number of sub-identifiers is not limited,
+      module designers should realize that there may be
+      implementations that stick with the SMIv2 limit of 128
+      sub-identifiers.
+
+      This type is a superset of the SMIv2 OBJECT IDENTIFIER type
+      since it is not restricted to 128 sub-identifiers.  Hence,
+      this type SHOULD NOT be used to represent the SMIv2 OBJECT
+      IDENTIFIER type; the object-identifier-128 type SHOULD be
+      used instead.\";
+    reference
+     \"ISO9834-1: Information technology -- Open Systems
+      Interconnection -- Procedures for the operation of OSI
+      Registration Authorities: General procedures and top
+      arcs of the ASN.1 Object Identifier tree\";
+  }
+
+  typedef object-identifier-128 {
+    type object-identifier {
+      pattern ''d*(.d*){1,127}'';
+    }
+    description
+     \"This type represents object-identifiers restricted to 128
+      sub-identifiers.
+
+      In the value set and its semantics, this type is equivalent
+      to the OBJECT IDENTIFIER type of the SMIv2.\";
+    reference
+     \"RFC 2578: Structure of Management Information Version 2
+                (SMIv2)\";
+  }
+
+  typedef yang-identifier {
+    type string {
+      length \"1..max\";
+      pattern ''[a-zA-Z_][a-zA-Z0-9-_.]*'';
+      pattern ''.|..|[^xX].*|.[^mM].*|..[^lL].*'';
+    }
+    description
+      \"A YANG identifier string as defined by the ''identifier''
+       rule in Section 12 of RFC 6020.  An identifier must
+       start with an alphabetic character or an underscore
+       followed by an arbitrary sequence of alphabetic or
+       numeric characters, underscores, hyphens, or dots.
+
+       A YANG identifier MUST NOT start with any possible
+       combination of the lowercase or uppercase character
+       sequence ''xml''.\";
+    reference
+      \"RFC 6020: YANG - A Data Modeling Language for the Network
+                 Configuration Protocol (NETCONF)\";
+  }
+
+  /*** collection of types related to date and time***/
+
+  typedef date-and-time {
+    type string {
+      pattern ''d{4}-d{2}-d{2}Td{2}:d{2}:d{2}(.d+)?''
+            + ''(Z|[+-]d{2}:d{2})'';
+    }
+    description
+     \"The date-and-time type is a profile of the ISO 8601
+      standard for representation of dates and times using the
+      Gregorian calendar.  The profile is defined by the
+      date-time production in Section 5.6 of RFC 3339.
+
+      The date-and-time type is compatible with the dateTime XML
+      schema type with the following notable exceptions:
+
+      (a) The date-and-time type does not allow negative years.
+
+      (b) The date-and-time time-offset -00:00 indicates an unknown
+          time zone (see RFC 3339) while -00:00 and +00:00 and Z
+          all represent the same time zone in dateTime.
+
+      (c) The canonical format (see below) of data-and-time values
+          differs from the canonical format used by the dateTime XML
+          schema type, which requires all times to be in UTC using
+          the time-offset ''Z''.
+
+      This type is not equivalent to the DateAndTime textual
+      convention of the SMIv2 since RFC 3339 uses a different
+      separator between full-date and full-time and provides
+      higher resolution of time-secfrac.
+
+      The canonical format for date-and-time values with a known time
+      zone uses a numeric time zone offset that is calculated using
+      the device''s configured known offset to UTC time.  A change of
+      the device''s offset to UTC time will cause date-and-time values
+      to change accordingly.  Such changes might happen periodically
+      in case a server follows automatically daylight saving time
+      (DST) time zone offset changes.  The canonical format for
+      date-and-time values with an unknown time zone (usually
+      referring to the notion of local time) uses the time-offset
+      -00:00.\";
+    reference
+     \"RFC 3339: Date and Time on the Internet: Timestamps
+      RFC 2579: Textual Conventions for SMIv2
+      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition\";
+  }
+
+  typedef timeticks {
+    type uint32;
+    description
+     \"The timeticks type represents a non-negative integer that
+      represents the time, modulo 2^32 (4294967296 decimal), in
+      hundredths of a second between two epochs.  When a schema
+      node is defined that uses this type, the description of
+      the schema node identifies both of the reference epochs.
+
+      In the value set and its semantics, this type is equivalent
+      to the TimeTicks type of the SMIv2.\";
+    reference
+     \"RFC 2578: Structure of Management Information Version 2
+                (SMIv2)\";
+  }
+
+  typedef timestamp {
+    type yang:timeticks;
+    description
+     \"The timestamp type represents the value of an associated
+      timeticks schema node at which a specific occurrence
+      happened.  The specific occurrence must be defined in the
+      description of any schema node defined using this type.  When
+      the specific occurrence occurred prior to the last time the
+      associated timeticks attribute was zero, then the timestamp
+      value is zero.  Note that this requires all timestamp values
+      to be reset to zero when the value of the associated timeticks
+      attribute reaches 497+ days and wraps around to zero.
+
+      The associated timeticks schema node must be specified
+      in the description of any schema node using this type.
+
+      In the value set and its semantics, this type is equivalent
+      to the TimeStamp textual convention of the SMIv2.\";
+    reference
+     \"RFC 2579: Textual Conventions for SMIv2\";
+  }
+
+  /*** collection of generic address types ***/
+
+  typedef phys-address {
+    type string {
+      pattern ''([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'';
+    }
+
+
+
+
+    description
+     \"Represents media- or physical-level addresses represented
+      as a sequence octets, each octet represented by two hexadecimal
+      numbers.  Octets are separated by colons.  The canonical
+      representation uses lowercase characters.
+
+      In the value set and its semantics, this type is equivalent
+      to the PhysAddress textual convention of the SMIv2.\";
+    reference
+     \"RFC 2579: Textual Conventions for SMIv2\";
+  }
+
+  typedef mac-address {
+    type string {
+      pattern ''[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'';
+    }
+    description
+     \"The mac-address type represents an IEEE 802 MAC address.
+      The canonical representation uses lowercase characters.
+
+      In the value set and its semantics, this type is equivalent
+      to the MacAddress textual convention of the SMIv2.\";
+    reference
+     \"IEEE 802: IEEE Standard for Local and Metropolitan Area
+                Networks: Overview and Architecture
+      RFC 2579: Textual Conventions for SMIv2\";
+  }
+
+  /*** collection of XML-specific types ***/
+
+  typedef xpath1.0 {
+    type string;
+    description
+     \"This type represents an XPATH 1.0 expression.
+
+      When a schema node is defined that uses this type, the
+      description of the schema node MUST specify the XPath
+      context in which the XPath expression is evaluated.\";
+    reference
+     \"XPATH: XML Path Language (XPath) Version 1.0\";
+  }
+
+  /*** collection of string types ***/
+
+  typedef hex-string {
+    type string {
+      pattern ''([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'';
+    }
+    description
+     \"A hexadecimal string with octets represented as hex digits
+      separated by colons.  The canonical representation uses
+      lowercase characters.\";
+  }
+
+  typedef uuid {
+    type string {
+      pattern ''[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-''
+            + ''[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'';
+    }
+    description
+     \"A Universally Unique IDentifier in the string representation
+      defined in RFC 4122.  The canonical representation uses
+      lowercase characters.
+
+      The following is an example of a UUID in string representation:
+      f81d4fae-7dec-11d0-a765-00a0c91e6bf6
+      \";
+    reference
+     \"RFC 4122: A Universally Unique IDentifier (UUID) URN
+                Namespace\";
+  }
+
+  typedef dotted-quad {
+    type string {
+      pattern
+        ''(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}''
+      + ''([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'';
+    }
+    description
+      \"An unsigned 32-bit number expressed in the dotted-quad
+       notation, i.e., four octets written as decimal numbers
+       and separated with the ''.'' (full stop) character.\";
+  }
+}"|57d603ee9ab0c49355ad0695c0709c93
diff --git a/cps-ri/src/main/resources/schema.sql b/cps-ri/src/main/resources/schema.sql
deleted file mode 100755 (executable)
index 2735ca4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-CREATE TABLE IF NOT EXISTS RELATION_TYPE\r
-(\r
-    RELATION_TYPE TEXT NOT NULL,\r
-    ID SERIAL PRIMARY KEY\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS DATASPACE\r
-(\r
-    ID SERIAL PRIMARY KEY,\r
-    NAME TEXT NOT NULL,\r
-    CONSTRAINT "UQ_NAME" UNIQUE (NAME)\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS SCHEMA_NODE\r
-(\r
-    SCHEMA_NODE_IDENTIFIER TEXT NOT NULL,\r
-    ID SERIAL PRIMARY KEY\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS SCHEMA_SET\r
-(\r
-    ID SERIAL PRIMARY KEY,\r
-    NAME TEXT NOT NULL,\r
-    DATASPACE_ID BIGINT NOT NULL,\r
-    UNIQUE (NAME, DATASPACE_ID),\r
-    CONSTRAINT SCHEMA_SET_DATASPACE FOREIGN KEY (DATASPACE_ID) REFERENCES DATASPACE(ID) ON UPDATE CASCADE ON DELETE CASCADE\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS YANG_RESOURCE\r
-(\r
-    ID SERIAL PRIMARY KEY,\r
-    NAME TEXT NOT NULL,\r
-    CONTENT TEXT NOT NULL,\r
-    CHECKSUM TEXT NOT NULL,\r
-    UNIQUE (CHECKSUM)\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS SCHEMA_SET_YANG_RESOURCES\r
-(\r
-    SCHEMA_SET_ID BIGINT NOT NULL,\r
-    YANG_RESOURCE_ID BIGINT NOT NULL REFERENCES YANG_RESOURCE(ID),\r
-    CONSTRAINT SCHEMA_SET_RESOURCE FOREIGN KEY (SCHEMA_SET_ID) REFERENCES SCHEMA_SET(ID) ON DELETE CASCADE\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS ANCHOR\r
-(\r
-    ID BIGSERIAL PRIMARY KEY,\r
-    NAME TEXT,\r
-    SCHEMA_SET_ID INTEGER REFERENCES SCHEMA_SET(ID),\r
-    DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),\r
-    UNIQUE (DATASPACE_ID, NAME)\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS FRAGMENT\r
-(\r
-    ID BIGSERIAL PRIMARY KEY,\r
-    XPATH TEXT NOT NULL,\r
-    ATTRIBUTES JSONB,\r
-    ANCHOR_ID BIGINT REFERENCES ANCHOR(ID),\r
-    PARENT_ID BIGINT REFERENCES FRAGMENT(ID),\r
-    DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),\r
-    SCHEMA_NODE_ID INTEGER REFERENCES SCHEMA_NODE(ID),\r
-    UNIQUE (DATASPACE_ID, ANCHOR_ID, XPATH)\r
-);\r
-\r
-CREATE TABLE IF NOT EXISTS RELATION\r
-(\r
-    FROM_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),\r
-    TO_FRAGMENT_ID   BIGINT NOT NULL REFERENCES FRAGMENT(ID),\r
-    RELATION_TYPE_ID  INTEGER NOT NULL REFERENCES RELATION_TYPE(ID),\r
-    FROM_REL_XPATH TEXT NOT NULL,\r
-    TO_REL_XPATH TEXT NOT NULL,\r
-    CONSTRAINT RELATION_PKEY PRIMARY KEY (TO_FRAGMENT_ID, FROM_FRAGMENT_ID, RELATION_TYPE_ID)\r
-);\r
-\r
-CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_DATASPACE_ID_FK"     ON FRAGMENT USING BTREE(DATASPACE_ID) ;\r
-CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_PARENT_ID_FK"        ON FRAGMENT USING BTREE(PARENT_ID) ;\r
-CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_ANCHOR_ID_FK"        ON FRAGMENT USING BTREE(ANCHOR_ID) ;\r
-CREATE INDEX  IF NOT EXISTS "FKI_ANCHOR_SCHEMA_SET_ID_FK"      ON ANCHOR USING BTREE(SCHEMA_SET_ID) ;\r
-CREATE INDEX  IF NOT EXISTS "PERF_SCHEMA_NODE_SCHEMA_NODE_ID"  ON SCHEMA_NODE USING BTREE(SCHEMA_NODE_IDENTIFIER) ;\r
-CREATE INDEX  IF NOT EXISTS "FKI_SCHEMA_NODE_ID_TO_ID"         ON FRAGMENT USING BTREE(SCHEMA_NODE_ID) ;\r
-CREATE INDEX  IF NOT EXISTS "FKI_RELATION_TYPE_ID_FK"          ON RELATION USING BTREE(RELATION_TYPE_ID);\r
-CREATE INDEX  IF NOT EXISTS "FKI_RELATIONS_FROM_ID_FK"         ON RELATION USING BTREE(FROM_FRAGMENT_ID);\r
-CREATE INDEX  IF NOT EXISTS "FKI_RELATIONS_TO_ID_FK"           ON RELATION USING BTREE(TO_FRAGMENT_ID);\r
-CREATE UNIQUE INDEX  IF NOT EXISTS "UQ_FRAGMENT_XPATH"ON FRAGMENT USING btree(xpath COLLATE pg_catalog."default" text_pattern_ops, dataspace_id);
\ No newline at end of file
index f6a5dfb..7454ad2 100644 (file)
@@ -5,9 +5,13 @@ spring:
       hibernate:
         enable_lazy_load_no_trans: true
         dialect: org.hibernate.dialect.PostgreSQLDialect
+
   datasource:
     url: ${DB_URL}
     username: ${DB_USERNAME}
     password: ${DB_PASSWORD}
     driverClassName: org.postgresql.Driver
     initialization-mode: always
+
+  liquibase:
+    change-log: classpath:changelog/changelog-master.yaml
\ No newline at end of file
index c3ceecd..9b841cb 100644 (file)
@@ -29,6 +29,11 @@ spring:
         cache-names: yangSchema\r
         caffeine:\r
             spec: maximumSize=10000,expireAfterAccess=10m\r
+\r
+    liquibase:\r
+        change-log: classpath:changelog/changelog-master.yaml\r
+        labels: ${LIQUIBASE_LABELS}\r
+\r
 # Actuator\r
 management:\r
     endpoints:\r