Merge "Introduce CPS integration testing (CSIT)"
diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml
index 83d1808..a592085 100644
--- a/checkstyle/pom.xml
+++ b/checkstyle/pom.xml
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>checkstyle</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<properties>
<nexusproxy>https://nexus.onap.org</nexusproxy>
diff --git a/cps-application/pom.xml b/cps-application/pom.xml
index 6df63c4..cfebf68 100644
--- a/cps-application/pom.xml
+++ b/cps-application/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
@@ -34,7 +34,6 @@
<properties>
<app>org.onap.cps.Application</app>
- <image.name>cps-service</image.name>
<image.version>${project.version}</image.version>
<jib-maven-plugin.version>2.6.0</jib-maven-plugin.version>
<minimum-coverage>0.0</minimum-coverage>
@@ -108,10 +107,6 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
- <plugin>
- <groupId>com.google.cloud.tools</groupId>
- <artifactId>jib-maven-plugin</artifactId>
- </plugin>
</plugins>
</build>
<profiles>
@@ -120,12 +115,24 @@
<activation>
<activeByDefault>false</activeByDefault>
</activation>
+
+ <properties>
+ <image.name>cps-service</image.name>
+ </properties>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>cps-rest</artifactId>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.google.cloud.tools</groupId>
+ <artifactId>jib-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
</profile>
<profile>
<id>xnf-docker</id>
@@ -143,11 +150,19 @@
<artifactId>cps-nf-proxy-rest</artifactId>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.google.cloud.tools</groupId>
+ <artifactId>jib-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
</profile>
<profile>
<id>cps-xnf-docker</id>
<activation>
- <activeByDefault>false</activeByDefault>
+ <activeByDefault>true</activeByDefault>
</activation>
<properties>
@@ -164,6 +179,14 @@
<artifactId>cps-nf-proxy-rest</artifactId>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.google.cloud.tools</groupId>
+ <artifactId>jib-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
</profile>
</profiles>
</project>
\ No newline at end of file
diff --git a/cps-bom/pom.xml b/cps-bom/pom.xml
index 9ae8a80..cf5025d 100644
--- a/cps-bom/pom.xml
+++ b/cps-bom/pom.xml
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>cps-bom</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<description>This artifact contains dependencyManagement declarations of all published CPS components.</description>
diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml
index 1beee11..202f8b2 100755
--- a/cps-dependencies/pom.xml
+++ b/cps-dependencies/pom.xml
@@ -6,7 +6,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>cps-dependencies</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.groupId}:${project.artifactId}</name>
@@ -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>
@@ -135,6 +136,11 @@
<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>
diff --git a/cps-nf-proxy-rest/pom.xml b/cps-nf-proxy-rest/pom.xml
index 94420f7..ac891e1 100755
--- a/cps-nf-proxy-rest/pom.xml
+++ b/cps-nf-proxy-rest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-nf-proxy-service/pom.xml b/cps-nf-proxy-service/pom.xml
index d32d0ad..67ffaeb 100644
--- a/cps-nf-proxy-service/pom.xml
+++ b/cps-nf-proxy-service/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml
index ecc9898..0f8e643 100755
--- a/cps-parent/pom.xml
+++ b/cps-parent/pom.xml
@@ -31,7 +31,7 @@
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
diff --git a/cps-rest/pom.xml b/cps-rest/pom.xml
index 2bb053b..840228e 100755
--- a/cps-rest/pom.xml
+++ b/cps-rest/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ri/pom.xml b/cps-ri/pom.xml
index 005fa27..2a704cf 100644
--- a/cps-ri/pom.xml
+++ b/cps-ri/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
@@ -41,6 +41,10 @@
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.liquibase</groupId>
+ <artifactId>liquibase-core</artifactId>
+ </dependency>
<!-- T E S T D E P E N D E N C I E S -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
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
index 0000000..6577012
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/changelog-master.yaml
@@ -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
index 0000000..cbf77dc
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/01-createCPSTables.yaml
@@ -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
index 0000000..c4e931d
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/02-loadData-dataspace.yaml
@@ -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
index 0000000..fd214da
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/03-loadData-schema-set.yaml
@@ -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
index 0000000..d42870d
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/04-loadData-anchor.yaml
@@ -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
index 0000000..1a31f42
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/05-loadData-fragment.yaml
@@ -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
index 0000000..78dd914
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/anchor.csv
@@ -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
index 0000000..70b4af6
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/dataspace.csv
@@ -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
index 0000000..81c379d
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/fragment.csv
@@ -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
index 0000000..39de8a4
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/schema_set.csv
@@ -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
index 0000000..9a258c2
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/schema_set_yang_resources.csv
@@ -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
index 0000000..4dd3127
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/yang_resource.csv
@@ -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
index 2735ca4..0000000
--- a/cps-ri/src/main/resources/schema.sql
+++ /dev/null
@@ -1,85 +0,0 @@
-CREATE TABLE IF NOT EXISTS RELATION_TYPE
-(
- RELATION_TYPE TEXT NOT NULL,
- ID SERIAL PRIMARY KEY
-);
-
-CREATE TABLE IF NOT EXISTS DATASPACE
-(
- ID SERIAL PRIMARY KEY,
- NAME TEXT NOT NULL,
- CONSTRAINT "UQ_NAME" UNIQUE (NAME)
-);
-
-CREATE TABLE IF NOT EXISTS SCHEMA_NODE
-(
- SCHEMA_NODE_IDENTIFIER TEXT NOT NULL,
- ID SERIAL PRIMARY KEY
-);
-
-CREATE TABLE IF NOT EXISTS SCHEMA_SET
-(
- ID SERIAL PRIMARY KEY,
- NAME TEXT NOT NULL,
- DATASPACE_ID BIGINT NOT NULL,
- UNIQUE (NAME, DATASPACE_ID),
- CONSTRAINT SCHEMA_SET_DATASPACE FOREIGN KEY (DATASPACE_ID) REFERENCES DATASPACE(ID) ON UPDATE CASCADE ON DELETE CASCADE
-);
-
-CREATE TABLE IF NOT EXISTS YANG_RESOURCE
-(
- ID SERIAL PRIMARY KEY,
- NAME TEXT NOT NULL,
- CONTENT TEXT NOT NULL,
- CHECKSUM TEXT NOT NULL,
- UNIQUE (CHECKSUM)
-);
-
-CREATE TABLE IF NOT EXISTS SCHEMA_SET_YANG_RESOURCES
-(
- SCHEMA_SET_ID BIGINT NOT NULL,
- YANG_RESOURCE_ID BIGINT NOT NULL REFERENCES YANG_RESOURCE(ID),
- CONSTRAINT SCHEMA_SET_RESOURCE FOREIGN KEY (SCHEMA_SET_ID) REFERENCES SCHEMA_SET(ID) ON DELETE CASCADE
-);
-
-CREATE TABLE IF NOT EXISTS ANCHOR
-(
- ID BIGSERIAL PRIMARY KEY,
- NAME TEXT,
- SCHEMA_SET_ID INTEGER REFERENCES SCHEMA_SET(ID),
- DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),
- UNIQUE (DATASPACE_ID, NAME)
-);
-
-CREATE TABLE IF NOT EXISTS FRAGMENT
-(
- ID BIGSERIAL PRIMARY KEY,
- XPATH TEXT NOT NULL,
- ATTRIBUTES JSONB,
- ANCHOR_ID BIGINT REFERENCES ANCHOR(ID),
- PARENT_ID BIGINT REFERENCES FRAGMENT(ID),
- DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),
- SCHEMA_NODE_ID INTEGER REFERENCES SCHEMA_NODE(ID),
- UNIQUE (DATASPACE_ID, ANCHOR_ID, XPATH)
-);
-
-CREATE TABLE IF NOT EXISTS RELATION
-(
- FROM_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),
- TO_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),
- RELATION_TYPE_ID INTEGER NOT NULL REFERENCES RELATION_TYPE(ID),
- FROM_REL_XPATH TEXT NOT NULL,
- TO_REL_XPATH TEXT NOT NULL,
- CONSTRAINT RELATION_PKEY PRIMARY KEY (TO_FRAGMENT_ID, FROM_FRAGMENT_ID, RELATION_TYPE_ID)
-);
-
-CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_DATASPACE_ID_FK" ON FRAGMENT USING BTREE(DATASPACE_ID) ;
-CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_PARENT_ID_FK" ON FRAGMENT USING BTREE(PARENT_ID) ;
-CREATE INDEX IF NOT EXISTS "FKI_FRAGMENT_ANCHOR_ID_FK" ON FRAGMENT USING BTREE(ANCHOR_ID) ;
-CREATE INDEX IF NOT EXISTS "FKI_ANCHOR_SCHEMA_SET_ID_FK" ON ANCHOR USING BTREE(SCHEMA_SET_ID) ;
-CREATE INDEX IF NOT EXISTS "PERF_SCHEMA_NODE_SCHEMA_NODE_ID" ON SCHEMA_NODE USING BTREE(SCHEMA_NODE_IDENTIFIER) ;
-CREATE INDEX IF NOT EXISTS "FKI_SCHEMA_NODE_ID_TO_ID" ON FRAGMENT USING BTREE(SCHEMA_NODE_ID) ;
-CREATE INDEX IF NOT EXISTS "FKI_RELATION_TYPE_ID_FK" ON RELATION USING BTREE(RELATION_TYPE_ID);
-CREATE INDEX IF NOT EXISTS "FKI_RELATIONS_FROM_ID_FK" ON RELATION USING BTREE(FROM_FRAGMENT_ID);
-CREATE INDEX IF NOT EXISTS "FKI_RELATIONS_TO_ID_FK" ON RELATION USING BTREE(TO_FRAGMENT_ID);
-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
diff --git a/cps-ri/src/test/resources/application.yml b/cps-ri/src/test/resources/application.yml
index f6a5dfb..7454ad2 100644
--- a/cps-ri/src/test/resources/application.yml
+++ b/cps-ri/src/test/resources/application.yml
@@ -5,9 +5,13 @@
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
diff --git a/cps-service/pom.xml b/cps-service/pom.xml
index fc4ca12..7225e43 100644
--- a/cps-service/pom.xml
+++ b/cps-service/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
index 75c98a8..a24bd0a 100755
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
@@ -106,7 +106,7 @@
def dataNodeStored
given: 'valid yang resource as name-to-content map'
def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(
- 'e2e/basic/cps-ran-inventory.yang')
+ 'e2e/basic/cps-ran-inventory@2021-01-28.yang')
def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap).getSchemaContext()
and : 'a valid json is provided for the model'
def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-inventory-data.json')
@@ -122,18 +122,23 @@
{ args -> dataNodeStored = args[2]}
and: 'the size of the tree is correct'
def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored)
- assert cpsRanInventory.size() == 3
+ assert cpsRanInventory.size() == 4
and: 'ran-inventory contains the correct child node'
def ranInventory = cpsRanInventory.get('/ran-inventory')
- def sliceProfilesList = cpsRanInventory.get('/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']')
- def pLMNIdList = cpsRanInventory.get('/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']/pLMNIdList[@mcc=\'310\' and @mnc=\'410\']')
+ def ranSlices = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']')
+ def sliceProfilesList = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']')
+ def pLMNIdList = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']/pLMNIdList[@mcc=\'310\' and @mnc=\'410\']')
ranInventory.getChildDataNodes().size() == 1
- ranInventory.getChildDataNodes().find( {it.xpath == sliceProfilesList.xpath})
+ ranInventory.getChildDataNodes().find( {it.xpath == ranSlices.xpath})
+ and: 'ranSlices contains the correct child node'
+ ranSlices.getChildDataNodes().size() == 1
+ ranSlices.getChildDataNodes().find( {it.xpath == sliceProfilesList.xpath})
and: 'sliceProfilesList contains the correct child node'
sliceProfilesList.getChildDataNodes().size() == 1
sliceProfilesList.getChildDataNodes().find( {it.xpath == pLMNIdList.xpath})
- and: 'pLMNIdList contains the no child nodes'
+ and: 'pLMNIdList contains no children'
pLMNIdList.getChildDataNodes().size() == 0
+
}
def 'E2E RAN Schema Model.'(){
diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json
index 1dbdab2..fb2efb1 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json
@@ -1,31 +1,34 @@
{
-"ran-inventory":{
- "rannfnssiid": "14559ead-f4fe-4c1c-a94c-8015fad3ea35",
- "subnetStatus": "active",
- "nsstid": "2372a5dc-ee24-4a45-85f5-65103dfdc5b4",
- "slicetype": "embb",
- "isshareable": "Shareable",
- "sliceProfilesList": [
- {
- "sliceProfileId": "f33a9dd8-ae51-4acf-8073-c9390c25f6f1",
- "sNSSAI": "001-11000",
- "maxNumberofUEs": 300,
- "latency": 5,
- "uLThptPerSlice": 40,
- "dLThptPerSlice": 50,
- "maxNumberofConns": 500,
- "uEMobilityLevel": "FULLY MOBILITY",
- "coverageAreaList": [
- "Washington"
- ],
- "resourceSharingLevel": "Shareable",
- "pLMNIdList": [
- {
- "mcc": "310",
- "mnc": "410"
- }
- ]
- }
- ]
+ "cps-ran-inventory:ran-inventory":{
+ "ran-slices":[{
+ "rannfnssiid": "14559ead-f4fe-4c1c-a94c-8015fad3ea35",
+ "subnetStatus": "active",
+ "nsstid": "2372a5dc-ee24-4a45-85f5-65103dfdc5b4",
+ "slicetype": "embb",
+ "isshareable": "Shareable",
+ "sliceProfilesList": [
+ {
+ "sliceProfileId": "f33a9dd8-ae51-4acf-8073-c9390c25f6f1",
+ "sNSSAI": "001-11000",
+ "maxNumberofUEs": 300,
+ "latency": 5,
+ "uLThptPerSlice": 40,
+ "dLThptPerSlice": 50,
+ "maxNumberofConns": 500,
+ "uEMobilityLevel": "FULLY MOBILITY",
+ "coverageAreaList": [
+ "Washington"
+ ],
+ "resourceSharingLevel": "Shareable",
+ "pLMNIdList": [
+ {
+ "mcc": "310",
+ "mnc": "410"
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
}
\ No newline at end of file
diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang
similarity index 61%
rename from cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang
rename to cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang
index 0e504ca..c16a682 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang
@@ -57,46 +57,46 @@
}
grouping SliceProfile{
- leaf sliceProfileId{
- type string;
- mandatory true;
- description "slice profile id";
- }
- leaf sNSSAI{
- type string;
- mandatory false;
- description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)";
- }
- leaf maxNumberofUEs{
- type int64 { range "0..68719476735"; }
- mandatory false;
- description "maximum number of UEs";
- }
- leaf latency{
- type int64 { range "0..68719476735"; }
- mandatory false;
- description "latency of the slice requested by the operator";
- }
- leaf uLThptPerSlice{
- type int64 { range "0..68719476735"; }
- mandatory false;
- description "uplink throughput of the slice requested by the operator";
- }
- leaf dLThptPerSlice{
- type int64 { range "0..68719476735"; }
- mandatory false;
- description "downlink throughput of the slice requested by the operator";
- }
- leaf maxNumberofConns{
- type int64 { range "0..68719476735"; }
- mandatory false;
- description "maximum number of connections to be served by the slice";
- }
- leaf uEMobilityLevel{
- type string;
- mandatory false;
- description "Mobility level of the UE";
- }
+ leaf sliceProfileId{
+ type string;
+ mandatory true;
+ description "slice profile id";
+ }
+ leaf sNSSAI{
+ type string;
+ mandatory false;
+ description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)";
+ }
+ leaf maxNumberofUEs{
+ type int64 { range "0..68719476735"; }
+ mandatory false;
+ description "maximum number of UEs";
+ }
+ leaf latency{
+ type int64 { range "0..68719476735"; }
+ mandatory false;
+ description "latency of the slice requested by the operator";
+ }
+ leaf uLThptPerSlice{
+ type int64 { range "0..68719476735"; }
+ mandatory false;
+ description "uplink throughput of the slice requested by the operator";
+ }
+ leaf dLThptPerSlice{
+ type int64 { range "0..68719476735"; }
+ mandatory false;
+ description "downlink throughput of the slice requested by the operator";
+ }
+ leaf maxNumberofConns{
+ type int64 { range "0..68719476735"; }
+ mandatory false;
+ description "maximum number of connections to be served by the slice";
+ }
+ leaf uEMobilityLevel{
+ type string;
+ mandatory false;
+ description "Mobility level of the UE";
+ }
leaf resourceSharingLevel{
type string;
description "Resource sharing level";
@@ -117,7 +117,7 @@
uses PLMNId;
}
- }
+ }
grouping PLMNId {
description
@@ -141,17 +141,17 @@
}
}
- container ran-inventory{
+ grouping ran-slices{
leaf rannfnssiid{
description "NSSI of a RAN network function";
type string;
}
list sliceProfilesList{
- uses SliceProfile;
- key "sliceProfileId";
- description "List of slice profiles supported by the ran slice";
- }
+ uses SliceProfile;
+ key "sliceProfileId";
+ description "List of slice profiles supported by the ran slice";
+ }
leaf subnetStatus{
description "status of RAN NF NSSI";
@@ -173,4 +173,11 @@
type string;
}
}
+ container ran-inventory{
+ list ran-slices{
+ uses ran-slices;
+ key "rannfnssiid";
+ description "List of RAN Slices";
+ }
+ }
}
diff --git a/docker-compose/application.yml b/docker-compose/application.yml
index c3ceecd..9b841cb 100644
--- a/docker-compose/application.yml
+++ b/docker-compose/application.yml
@@ -29,6 +29,11 @@
cache-names: yangSchema
caffeine:
spec: maximumSize=10000,expireAfterAccess=10m
+
+ liquibase:
+ change-log: classpath:changelog/changelog-master.yaml
+ labels: ${LIQUIBASE_LABELS}
+
# Actuator
management:
endpoints:
diff --git a/pom.xml b/pom.xml
index 21d9b2e..de96249 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
<groupId>org.onap.cps</groupId>
<artifactId>cps-aggregator</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>cps</name>
diff --git a/spotbugs/pom.xml b/spotbugs/pom.xml
index 133c4f7..2a0788e 100644
--- a/spotbugs/pom.xml
+++ b/spotbugs/pom.xml
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>spotbugs</artifactId>
- <version>0.0.1-SNAPSHOT</version>
+ <version>0.0.2-SNAPSHOT</version>
<properties>
<nexusproxy>https://nexus.onap.org</nexusproxy>
diff --git a/version.properties b/version.properties
index d38d843..304745a 100644
--- a/version.properties
+++ b/version.properties
@@ -3,7 +3,7 @@
major=0
minor=0
-patch=1
+patch=2
base_version=${major}.${minor}.${patch}