summaryrefslogtreecommitdiffstats
path: root/aai-schema-ingest
diff options
context:
space:
mode:
authorKajur, Harish (vk250x) <vk250x@att.com>2018-08-10 12:42:00 -0400
committerKajur, Harish (vk250x) <vk250x@att.com>2018-08-12 16:48:34 -0400
commita86d6a6644d6de3f3f814cd6e25cfe2213d5dd05 (patch)
tree9935a64d7f830ebedf2742e0febef40e898cea91 /aai-schema-ingest
parenta395fa69a28a04d0a667fe458b4f10497a1d6794 (diff)
Integrate aai-schema-ingest library into aai-core
Integrate the aai-core into using the aai-schema-ingest library to be agnostic to the schema changes Remove any references to aai-schema dependency in aai-core Reorder the components so the aai-schema-ingest is first installed Moved the edge rules to the aai-schema as they are linked to schema Rework the generation of the aai-schema to using aai-schema-ingest library Also remove the yaml and html folders as they get generated on the fly So when maven pushes the aai-schema jar, the jar contains the generated yaml, html and xsd files at runtime due to the gerrit limit of filesize Issue-ID: AAI-1455 Change-Id: I87ecd9eb2fc96a09d3a6399955637674f6e7fb21 Signed-off-by: Kajur, Harish (vk250x) <vk250x@att.com>
Diffstat (limited to 'aai-schema-ingest')
-rw-r--r--aai-schema-ingest/pom.xml231
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeIngestor.java119
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java42
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRuleQuery.java140
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/JsonIngestor.java23
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/TypeAlphabetizer.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/AAIDirection.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/DirectionNotation.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeField.java5
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeProperty.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeType.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/MultiplicityRule.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/AmbiguousRuleChoiceException.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/EdgeRuleNotFoundException.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/nodes/NodeIngestor.java145
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/setup/AAIConfigTranslator.java112
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/setup/ConfigTranslator.java18
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaLocationsBean.java61
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersion.java85
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersions.java159
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/setup/Version.java41
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/AAISchemaValidationException.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/CheckEverythingStrategy.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/DefaultVersionValidationModule.java12
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/FailFastStrategy.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/SchemaErrorStrategy.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidationModule.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidator.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/CousinDefaultingValidationModule.java6
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModule.java6
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeFieldsValidationModule.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java15
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/NodeTypesValidationModule.java12
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/SingleContainmentValidationModule.java4
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/UniqueLabelValidationModule.java6
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DefaultDuplicateNodeDefinitionValidationModule.java10
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DuplicateNodeDefinitionValidationModule.java8
-rw-r--r--aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/NodeValidator.java8
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java115
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java13
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java59
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java33
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java98
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java13
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java24
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java6
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java31
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java31
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java29
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java35
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java82
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java50
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java80
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java15
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java18
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java15
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java4
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java9
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java9
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java18
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java19
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java21
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java9
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java88
-rw-r--r--aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java9
-rw-r--r--aai-schema-ingest/src/test/resources/edgeRules/test3.json12
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/aai_oxm_v13.xml4630
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-for-xml-test.properties3
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-wiring-test.properties10
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest2.properties3
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/schemaIngest2.properties3
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestForXMLTest.properties3
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestWiringTest.properties3
-rw-r--r--aai-schema-ingest/src/test/resources/forWiringTests/testUsingPropFileContext.xml8
-rw-r--r--aai-schema-ingest/src/test/resources/oxm/business_oxm_v12.xml609
-rw-r--r--aai-schema-ingest/src/test/resources/oxm/business_oxm_v13.xml609
-rw-r--r--aai-schema-ingest/src/test/resources/oxm/common_oxm_v13.xml188
-rw-r--r--aai-schema-ingest/src/test/resources/oxm/goodConfigForValidationTest_oxm.xml3
-rw-r--r--aai-schema-ingest/src/test/resources/oxm/network_oxm_v13.xml3412
-rw-r--r--aai-schema-ingest/src/test/resources/oxm/serviceDesign_oxm_v13.xml538
-rw-r--r--aai-schema-ingest/src/test/resources/schema-ingest.properties3
-rw-r--r--aai-schema-ingest/src/test/resources/schemaIngest.properties3
89 files changed, 11640 insertions, 689 deletions
diff --git a/aai-schema-ingest/pom.xml b/aai-schema-ingest/pom.xml
index 8a09cbd8..ab8be115 100644
--- a/aai-schema-ingest/pom.xml
+++ b/aai-schema-ingest/pom.xml
@@ -19,127 +19,122 @@
============LICENSE_END=========================================================
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.onap.aai.aai-common</groupId>
- <artifactId>aai-common</artifactId>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.aai.aai-common</groupId>
+ <artifactId>aai-common</artifactId>
+ <version>1.3.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>aai-schema-ingest</artifactId>
+ <name>aai-schema-ingest</name>
<version>1.3.0-SNAPSHOT</version>
- </parent>
- <artifactId>aai-schema-ingest</artifactId>
- <name>aai-schema-ingest</name>
- <version>1.3.0-SNAPSHOT</version>
- <packaging>jar</packaging>
+ <packaging>jar</packaging>
- <dependencies>
- <dependency>
- <groupId>org.eclipse.persistence</groupId>
- <artifactId>eclipselink</artifactId>
- <version>2.6.2</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>16.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.tinkerpop</groupId>
- <artifactId>gremlin-core</artifactId>
- <version>3.0.1-incubating</version>
- </dependency>
- <dependency>
- <groupId>com.jayway.jsonpath</groupId>
- <artifactId>json-path</artifactId>
- <version>2.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>4.3.16.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>4.3.16.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-test</artifactId>
- <version>1.5.1.RELEASE</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>2.8.11</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.8.11</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <version>1.10.19</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
<build>
- <plugins>
- <plugin>
- <!-- explicitly define maven-deploy-plugin after other to force exec order -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.sonatype.plugins</groupId>
- <artifactId>nexus-staging-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- <!-- Plugins and repositories -->
- <pluginRepositories>
- <pluginRepository>
- <id>central</id>
- <url>http://repo1.maven.org/maven2</url>
- </pluginRepository>
- <pluginRepository>
- <id>EvoSuite</id>
- <name>EvoSuite Repository</name>
- <url>http://www.evosuite.org/m2</url>
- </pluginRepository>
- </pluginRepositories>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <!-- explicitly define maven-deploy-plugin after other to force exec order -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.persistence</groupId>
+ <artifactId>eclipselink</artifactId>
+ <version>2.6.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>16.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tinkerpop</groupId>
+ <artifactId>gremlin-core</artifactId>
+ <version>3.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jayway.jsonpath</groupId>
+ <artifactId>json-path</artifactId>
+ <version>2.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>4.3.16.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ <version>4.3.16.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-test</artifactId>
+ <version>1.5.1.RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <version>1.10.19</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <!-- Plugins and repositories -->
+ <pluginRepositories>
+ <pluginRepository>
+ <id>central</id>
+ <url>http://repo1.maven.org/maven2</url>
+ </pluginRepository>
+ <pluginRepository>
+ <id>EvoSuite</id>
+ <name>EvoSuite Repository</name>
+ <url>http://www.evosuite.org/m2</url>
+ </pluginRepository>
+ </pluginRepositories>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.10.4</version>
- <configuration>
- <failOnError>false</failOnError>
- <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
- <docletArtifact>
- <groupId>org.umlgraph</groupId>
- <artifactId>umlgraph</artifactId>
- <version>5.6</version>
- </docletArtifact>
- <additionalparam>-views</additionalparam>
- <useStandardDocletOptions>true</useStandardDocletOptions>
- </configuration>
- </plugin>
- </plugins>
- </reporting>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.10.4</version>
+ <configuration>
+ <failOnError>false</failOnError>
+ <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
+ <docletArtifact>
+ <groupId>org.umlgraph</groupId>
+ <artifactId>umlgraph</artifactId>
+ <version>5.6</version>
+ </docletArtifact>
+ <additionalparam>-views</additionalparam>
+ <useStandardDocletOptions>true</useStandardDocletOptions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
</project>
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeIngestor.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeIngestor.java
index c39a1c2e..dfcd0db3 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeIngestor.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeIngestor.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
@@ -34,7 +32,8 @@ import org.onap.aai.edges.enums.EdgeType;
import org.onap.aai.edges.exceptions.AmbiguousRuleChoiceException;
import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException;
import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -46,27 +45,29 @@ import com.jayway.jsonpath.Filter;
import static com.jayway.jsonpath.Filter.filter;
import static com.jayway.jsonpath.Criteria.where;
-@Component
/**
* EdgeIngestor - ingests A&AI edge rule schema files per given config, serves that edge rule
* information, including allowing various filters to extract particular rules.
*/
+@Component
public class EdgeIngestor {
- private Map<Version, List<DocumentContext>> versionJsonFilesMap;
+ private Map<SchemaVersion, List<DocumentContext>> versionJsonFilesMap;
private static final String READ_START = "$.rules.[?]";
private static final String READ_ALL_START = "$.rules.*";
-
+
+ private SchemaVersions schemaVersions;
//-----ingest-----//
- @Autowired
/**
* Instantiates the EdgeIngestor bean.
*
* @param translator - ConfigTranslator autowired in by Spring framework which
* contains the configuration information needed to ingest the desired files.
*/
- public EdgeIngestor(ConfigTranslator translator) {
- Map<Version, List<String>> filesToIngest = translator.getEdgeFiles();
+ @Autowired
+ public EdgeIngestor(ConfigTranslator translator, SchemaVersions schemaVersions) {
+ Map<SchemaVersion, List<String>> filesToIngest = translator.getEdgeFiles();
JsonIngestor ji = new JsonIngestor();
+ this.schemaVersions = schemaVersions;
versionJsonFilesMap = ji.ingest(filesToIngest);
}
@@ -87,7 +88,7 @@ public class EdgeIngestor {
* @throws EdgeRuleNotFoundException if none found
*/
public Multimap<String, EdgeRule> getAllCurrentRules() throws EdgeRuleNotFoundException {
- return getAllRules(Version.getLatest());
+ return getAllRules(schemaVersions.getDefaultVersion());
}
/**
@@ -104,7 +105,7 @@ public class EdgeIngestor {
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
* @throws EdgeRuleNotFoundException if none found
*/
- public Multimap<String, EdgeRule> getAllRules(Version v) throws EdgeRuleNotFoundException {
+ public Multimap<String, EdgeRule> getAllRules(SchemaVersion v) throws EdgeRuleNotFoundException {
Multimap<String, EdgeRule> found = extractRules(null, v);
if (found.isEmpty()) {
throw new EdgeRuleNotFoundException("No rules found for version " + v.toString() + ".");
@@ -130,10 +131,28 @@ public class EdgeIngestor {
* @throws EdgeRuleNotFoundException if none found
*/
public Multimap<String, EdgeRule> getRules(EdgeRuleQuery q) throws EdgeRuleNotFoundException {
- Multimap<String, EdgeRule> found = extractRules(q.getFilter(), q.getVersion());
+ Multimap<String, EdgeRule> found = null;
+ if(q.getVersion().isPresent()){
+ found = extractRules(q.getFilter(), q.getVersion().get());
+ } else {
+ found = extractRules(q.getFilter(), schemaVersions.getDefaultVersion());
+ }
if (found.isEmpty()) {
throw new EdgeRuleNotFoundException("No rules found for " + q.toString());
} else {
+ for (EdgeRule rule : found.values()) {
+ if (!q.getFromType().equals(rule.getFrom())) {
+ /* To maintain backwards compatibility with old EdgeRules API,
+ * where the direction of the returned EdgeRule would be
+ * flipped (if necessary) to match the directionality of
+ * the input params.
+ * ie, If the rule is from=A,to=B,direction=OUT,
+ * if the user asked (A,B) the direction would be OUT,
+ * if they asked (B,A), it would be IN to match.
+ */
+ rule.flipDirection();
+ }
+ }
return found;
}
}
@@ -155,8 +174,13 @@ public class EdgeIngestor {
* ex: which l-interface|logical-link rule to default to.
*/
public EdgeRule getRule(EdgeRuleQuery q) throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
- Multimap<String, EdgeRule> found = extractRules(q.getFilter(), q.getVersion());
-
+ Multimap<String, EdgeRule> found = null;
+ if(q.getVersion().isPresent()){
+ found = extractRules(q.getFilter(), q.getVersion().get());
+ } else {
+ found = extractRules(q.getFilter(), schemaVersions.getDefaultVersion());
+ }
+
if (found.isEmpty()) {
throw new EdgeRuleNotFoundException("No rule found for " + q.toString() + ".");
}
@@ -173,6 +197,17 @@ public class EdgeIngestor {
if (rule == null) { //should never get here though
throw new EdgeRuleNotFoundException("No rule found for " + q.toString() + ".");
} else {
+ if (!q.getFromType().equals(rule.getFrom())) {
+ /* To maintain backwards compatibility with old EdgeRules API,
+ * where the direction of the returned EdgeRule would be
+ * flipped (if necessary) to match the directionality of
+ * the input params.
+ * ie, If the rule is from=A,to=B,direction=OUT,
+ * if the user asked (A,B) the direction would be OUT,
+ * if they asked (B,A), it would be IN to match.
+ */
+ rule.flipDirection();
+ }
return rule;
}
}
@@ -211,7 +246,11 @@ public class EdgeIngestor {
* @return boolean
*/
public boolean hasRule(EdgeRuleQuery q) {
- return !extractRules(q.getFilter(), q.getVersion()).isEmpty();
+ if(q.getVersion().isPresent()){
+ return !extractRules(q.getFilter(), q.getVersion().get()).isEmpty();
+ } else {
+ return !extractRules(q.getFilter(), schemaVersions.getDefaultVersion()).isEmpty();
+ }
}
/**
@@ -228,7 +267,7 @@ public class EdgeIngestor {
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
public Multimap<String, EdgeRule> getCousinRules(String nodeType) {
- return getCousinRules(nodeType, Version.getLatest()); //default to latest
+ return getCousinRules(nodeType, schemaVersions.getDefaultVersion()); //default to latest
}
/**
@@ -245,7 +284,7 @@ public class EdgeIngestor {
* This is alphabetical order to normalize the keys, as sometimes there will be multiple
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
- public Multimap<String, EdgeRule> getCousinRules(String nodeType, Version v) {
+ public Multimap<String, EdgeRule> getCousinRules(String nodeType, SchemaVersion v) {
return extractRules(new EdgeRuleQuery.Builder(nodeType).edgeType(EdgeType.COUSIN).build().getFilter(), v);
}
@@ -255,7 +294,7 @@ public class EdgeIngestor {
* @return boolean
*/
public boolean hasCousinRule(String nodeType) {
- return hasCousinRule(nodeType, Version.getLatest());
+ return hasCousinRule(nodeType, schemaVersions.getDefaultVersion());
}
/**
@@ -263,7 +302,7 @@ public class EdgeIngestor {
* @param nodeType
* @return boolean
*/
- public boolean hasCousinRule(String nodeType, Version v) {
+ public boolean hasCousinRule(String nodeType, SchemaVersion v) {
return !getCousinRules(nodeType, v).isEmpty();
}
@@ -281,7 +320,7 @@ public class EdgeIngestor {
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
public Multimap<String, EdgeRule> getChildRules(String nodeType) {
- return getChildRules(nodeType, Version.getLatest());
+ return getChildRules(nodeType, schemaVersions.getDefaultVersion());
}
/**
@@ -297,7 +336,7 @@ public class EdgeIngestor {
* This is alphabetical order to normalize the keys, as sometimes there will be multiple
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
- public Multimap<String, EdgeRule> getChildRules(String nodeType, Version v) {
+ public Multimap<String, EdgeRule> getChildRules(String nodeType, SchemaVersion v) {
Filter from = assembleFilterSegments(where(EdgeField.FROM.toString()).is(nodeType), getSameDirectionContainmentCriteria());
Filter to = assembleFilterSegments(where(EdgeField.TO.toString()).is(nodeType), getOppositeDirectionContainmentCriteria());
Filter total = from.or(to);
@@ -311,7 +350,7 @@ public class EdgeIngestor {
* @return boolean
*/
public boolean hasChildRule(String nodeType) {
- return hasChildRule(nodeType, Version.getLatest());
+ return hasChildRule(nodeType, schemaVersions.getDefaultVersion());
}
/**
@@ -319,7 +358,7 @@ public class EdgeIngestor {
* @param nodeType
* @return boolean
*/
- public boolean hasChildRule(String nodeType, Version v) {
+ public boolean hasChildRule(String nodeType, SchemaVersion v) {
return !getChildRules(nodeType, v).isEmpty();
}
@@ -337,7 +376,7 @@ public class EdgeIngestor {
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
public Multimap<String, EdgeRule> getParentRules(String nodeType) {
- return getParentRules(nodeType, Version.getLatest());
+ return getParentRules(nodeType, schemaVersions.getDefaultVersion());
}
/**
@@ -353,7 +392,7 @@ public class EdgeIngestor {
* This is alphabetical order to normalize the keys, as sometimes there will be multiple
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
- public Multimap<String, EdgeRule> getParentRules(String nodeType, Version v) {
+ public Multimap<String, EdgeRule> getParentRules(String nodeType, SchemaVersion v) {
Filter from = assembleFilterSegments(where(EdgeField.FROM.toString()).is(nodeType), getOppositeDirectionContainmentCriteria());
Filter to = assembleFilterSegments(where(EdgeField.TO.toString()).is(nodeType), getSameDirectionContainmentCriteria());
Filter total = from.or(to);
@@ -367,7 +406,7 @@ public class EdgeIngestor {
* @return boolean
*/
public boolean hasParentRule(String nodeType) {
- return hasParentRule(nodeType, Version.getLatest());
+ return hasParentRule(nodeType, schemaVersions.getDefaultVersion());
}
/**
@@ -375,7 +414,7 @@ public class EdgeIngestor {
* @param nodeType
* @return boolean
*/
- public boolean hasParentRule(String nodeType, Version v) {
+ public boolean hasParentRule(String nodeType, SchemaVersion v) {
return !getParentRules(nodeType, v).isEmpty();
}
@@ -395,7 +434,7 @@ public class EdgeIngestor {
* This is alphabetical order to normalize the keys, as sometimes there will be multiple
* rules for a pair of node types but the from/to value in the json is flipped for some of them.
*/
- private Multimap<String, EdgeRule> extractRules(Filter filter, Version v) {
+ private Multimap<String, EdgeRule> extractRules(Filter filter, SchemaVersion v) {
List<Map<String, String>> foundRules = new ArrayList<>();
List<DocumentContext> docs = versionJsonFilesMap.get(v);
if (docs != null) {
@@ -486,7 +525,7 @@ public class EdgeIngestor {
/**
* Converts the raw output from reading the json file to the Multimap<String key, EdgeRule> format
*
- * @param List<Map<String, String>> allFound - raw edge rule output read from json file(s)
+ * @param allFound - raw edge rule output read from json file(s)
* (could be empty if none found)
* @return Multimap<String, EdgeRule> of node names keys to the EdgeRules where the key takes the form of
* {alphabetically first nodetype}|{alphabetically second nodetype}. Will be empty if input
@@ -502,14 +541,24 @@ public class EdgeIngestor {
TypeAlphabetizer alpher = new TypeAlphabetizer();
- if (!allFound.isEmpty()) {
- for (Map<String, String> raw : allFound) {
- EdgeRule converted = new EdgeRule(raw);
- String alphabetizedKey = alpher.buildAlphabetizedKey(raw.get(EdgeField.FROM.toString()), raw.get(EdgeField.TO.toString()));
- rules.put(alphabetizedKey, converted);
+ for (Map<String, String> raw : allFound) {
+ EdgeRule converted = new EdgeRule(raw);
+ if (converted.getFrom().equals(converted.getTo())) {
+ /* the way the code worked in the past was with outs and
+ * when we switched it to in the same-node-type to
+ * same-node-type parent child edges were failing because all
+ * of the calling code would pass the parent as the left argument,
+ * so it was either in that method swap the parent/child,
+ * flip the edge rule or make all callers swap. the last seemed
+ * like a bad idea. and felt like the edge flip was the better
+ * of the remaining 2 */
+ converted.flipDirection();
}
+ String alphabetizedKey = alpher.buildAlphabetizedKey(raw.get(EdgeField.FROM.toString()), raw.get(EdgeField.TO.toString()));
+ rules.put(alphabetizedKey, converted);
}
return rules;
}
+
}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java
index f859aae6..e1cb240e 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
@@ -43,6 +41,7 @@ public class EdgeRule {
private Map<EdgeProperty, AAIDirection> edgeFields;
private boolean isDefaultEdge;
private String description;
+ private boolean isPrivateEdge = false;
/**
* Instantiates a new edge rule.
@@ -59,7 +58,7 @@ public class EdgeRule {
label = fieldVals.get(EdgeField.LABEL.toString());
direction = Direction.valueOf(fieldVals.get(EdgeField.DIRECTION.toString()));
multiplicityRule = MultiplicityRule.getValue(fieldVals.get(EdgeField.MULTIPLICITY.toString()));
-
+ isPrivateEdge = Boolean.valueOf(fieldVals.getOrDefault(EdgeField.PRIVATE.toString(), "false"));
for (EdgeProperty prop : EdgeProperty.values()) {
String rawVal = fieldVals.get(prop.toString());
edgeFields.put(prop, convertNotation(direction, rawVal));
@@ -84,13 +83,13 @@ public class EdgeRule {
* translates the direction notation into the correct IN/OUT
*/
private AAIDirection convertNotation(Direction dir, String rawVal) {
- if (AAIDirection.NONE.toString().equals(rawVal)) {
+ if (AAIDirection.NONE.toString().equalsIgnoreCase(rawVal)) {
return AAIDirection.NONE;
- } else if (AAIDirection.BOTH.toString().equals(rawVal)) {
+ } else if (AAIDirection.BOTH.toString().equalsIgnoreCase(rawVal)) {
return AAIDirection.BOTH;
- } else if (AAIDirection.OUT.toString().equals(rawVal)) {
+ } else if (AAIDirection.OUT.toString().equalsIgnoreCase(rawVal)) {
return AAIDirection.OUT;
- } else if (AAIDirection.IN.toString().equals(rawVal)) {
+ } else if (AAIDirection.IN.toString().equalsIgnoreCase(rawVal)) {
return AAIDirection.IN;
}
@@ -188,4 +187,31 @@ public class EdgeRule {
public String getDescription() {
return this.description;
}
+
+ /**
+ * Flips the direction value
+ * IN -> OUT
+ * OUT -> IN
+ * BOTH -> BOTH
+ */
+ public void flipDirection() {
+ if (Direction.OUT.equals(direction)) {
+ direction = Direction.IN;
+ } else if (Direction.IN.equals(direction)) {
+ direction = Direction.OUT;
+ }
+ //else BOTH just stays the same
+ }
+
+ public boolean isPrivateEdge() {
+ return isPrivateEdge;
+ }
+
+ public void setPrivateEdge(boolean privateEdge) {
+ isPrivateEdge = privateEdge;
+ }
+
+ public void setPrivateEdge(String isPrivateEdge){
+ this.isPrivateEdge = "true".equals(isPrivateEdge);
+ }
}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRuleQuery.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRuleQuery.java
index 3029685f..828968a5 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRuleQuery.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRuleQuery.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,17 +16,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
+import org.apache.commons.lang.StringUtils;
+//import org.apache.tinkerpop.gremlin.structure.Direction;
import org.onap.aai.edges.enums.AAIDirection;
import org.onap.aai.edges.enums.EdgeField;
import org.onap.aai.edges.enums.EdgeProperty;
import org.onap.aai.edges.enums.EdgeType;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import com.jayway.jsonpath.Filter;
import com.jayway.jsonpath.Predicate;
@@ -35,6 +35,7 @@ import static com.jayway.jsonpath.Filter.filter;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import static com.jayway.jsonpath.Criteria.where;
@@ -44,11 +45,13 @@ import static com.jayway.jsonpath.Criteria.where;
*/
public class EdgeRuleQuery {
private Filter filter;
- private Version v;
+ private Optional<SchemaVersion> v;
private String nodeA;
private String nodeB;
private String label;
+ private AAIDirection direction;
private EdgeType type;
+ private boolean isPrivate;
public static class Builder {
//required
@@ -58,7 +61,9 @@ public class EdgeRuleQuery {
private String nodeB = null;
private String label = null;
private EdgeType type = null;
- private Version version = Version.getLatest(); //default
+ private AAIDirection direction = null;
+ private boolean isPrivate = false;
+ private SchemaVersion version = null;
public Builder(String nodeA) {
this.nodeA = nodeA;
@@ -72,10 +77,22 @@ public class EdgeRuleQuery {
private String getFirstNodeType() {
return nodeA;
}
+ public Builder fromOnly() {
+ this.nodeB = "FromOnly";
+ return this;
+ }
private String getSecondNodeType() {
return nodeB;
}
+ public Builder toOnly() {
+ //Allows this to be used with single parameter constructor Builder(String nodeA)
+ if(StringUtils.isEmpty(this.nodeB) && StringUtils.isNotEmpty(this.nodeA) ) {
+ this.nodeB=this.nodeA;
+ }
+ this.nodeA = "ToOnly";
+ return this;
+ }
public Builder label(String label) {
this.label = label;
@@ -95,12 +112,32 @@ public class EdgeRuleQuery {
return type;
}
- public Builder version(Version version) {
+
+ public Builder direction(AAIDirection direction) {
+ this.direction = direction;
+ return this;
+ }
+
+ private AAIDirection getDirection() {
+ return direction;
+ }
+
+ public Builder version(SchemaVersion version) {
this.version = version;
return this;
}
- private Version getVersion() {
- return version;
+
+ public Builder setPrivate(boolean isPrivate){
+ this.isPrivate = isPrivate;
+ return this;
+ }
+
+ public boolean isPrivate(){
+ return isPrivate;
+ }
+
+ private Optional<SchemaVersion> getSchemaVersion() {
+ return Optional.ofNullable(version);
}
public EdgeRuleQuery build() {
@@ -109,21 +146,30 @@ public class EdgeRuleQuery {
}
private EdgeRuleQuery(Builder builder) {
- this.v = builder.getVersion();
+ this.v = builder.getSchemaVersion();
this.nodeA = builder.getFirstNodeType();
this.nodeB = builder.getSecondNodeType();
this.label = builder.getLabel();
this.type = builder.getEdgeType();
+ this.direction = builder.getDirection();
+ this.isPrivate = builder.isPrivate();
//will cover from A to B case
List<Predicate> criteriaFromTo = new ArrayList<>();
- criteriaFromTo.add(buildToFromPart(builder.getFirstNodeType(), builder.getSecondNodeType()));
+ //Special logic to allow for A to B case only
+ if(("FromOnly").equals(builder.getSecondNodeType())) {
+ criteriaFromTo.add(buildToFromPart(builder.getFirstNodeType(), null));
+ } else {
+ criteriaFromTo.add(buildToFromPart(builder.getFirstNodeType(), builder.getSecondNodeType()));
+ }
//will cover from B to A case - must be separate bc jsonpath won't let me OR predicates >:C
List<Predicate> criteriaToFrom = new ArrayList<>();
- criteriaToFrom.add(buildToFromPart(builder.getSecondNodeType(), builder.getFirstNodeType()));
-
-
-
+ //Special logic to allow for B to A case only
+ if(("ToOnly").equals(builder.getFirstNodeType())) {
+ criteriaToFrom.add(buildToFromPart(null, builder.getSecondNodeType()));
+ } else {
+ criteriaToFrom.add(buildToFromPart(builder.getSecondNodeType(), builder.getFirstNodeType()));
+ }
if (builder.getLabel() != null) {
Predicate labelPred = addLabel(builder.getLabel());
criteriaFromTo.add(labelPred);
@@ -135,10 +181,25 @@ public class EdgeRuleQuery {
criteriaFromTo.add(typePred);
criteriaToFrom.add(typePred);
}
-
+ Predicate privatePredicate = where("private").is(String.valueOf(isPrivate));
+ if(isPrivate){
+ criteriaFromTo.add(privatePredicate);
+ criteriaToFrom.add(privatePredicate);
+ }
- this.filter = filter(criteriaFromTo).or(filter(criteriaToFrom));
+ if (builder.getDirection() != null) {
+ Predicate directionPred = addDirection(builder.getDirection());
+ criteriaFromTo.add(directionPred);
+ criteriaToFrom.add(directionPred);
+ }
+ if(("ToOnly").equals(builder.getFirstNodeType())) {
+ this.filter = filter(criteriaToFrom);
+ } else if(("FromOnly").equals(builder.getSecondNodeType())) {
+ this.filter = filter(criteriaFromTo);
+ } else {
+ this.filter = filter(criteriaFromTo).or(filter(criteriaToFrom));
+ }
}
private Predicate buildToFromPart(String from, String to) {
@@ -170,6 +231,19 @@ public class EdgeRuleQuery {
return where(EdgeProperty.CONTAINS.toString()).ne(AAIDirection.NONE.toString());
}
}
+
+ private Predicate addDirection(AAIDirection direction) {
+ if (direction == AAIDirection.OUT) {
+ return where(EdgeField.DIRECTION.toString()).in(AAIDirection.OUT.toString(), AAIDirection.BOTH.toString());
+ } else if (direction == AAIDirection.IN) {
+ return where(EdgeField.DIRECTION.toString()).in(AAIDirection.IN.toString(), AAIDirection.BOTH.toString());
+ } else if (direction == AAIDirection.BOTH) {
+ return where(EdgeField.DIRECTION.toString()).is(AAIDirection.BOTH.toString());
+ } else if (direction == AAIDirection.NONE) {
+ return where(EdgeField.DIRECTION.toString()).is(AAIDirection.NONE.toString());
+ }
+ return where(EdgeField.DIRECTION.toString()).is(AAIDirection.NONE.toString());
+ }
/**
* Provides the JsonPath filter for actually querying the edge rule schema files
@@ -180,10 +254,27 @@ public class EdgeRuleQuery {
}
/**
+ * Gets the first node type given for the query.
+ *
+ * ie, If you called Builder(A,B) this would return A,
+ * if you called Builder(B,A), it would return B,
+ * if you called Builder(A), it would return A.
+ *
+ * This is to maintain backwards compatibility with the
+ * EdgeRules API which flipped the direction of
+ * the result EdgeRule to match the input directionality.
+ *
+ * @return String first node type of the query
+ */
+ public String getFromType() {
+ return this.nodeA;
+ }
+
+ /**
* So the Ingestor knows which version of the rules to search
* @return the Version
*/
- public Version getVersion() {
+ public Optional<SchemaVersion> getVersion() {
return this.v;
}
@@ -207,8 +298,15 @@ public class EdgeRuleQuery {
} else {
sb.append("any");
}
-
- sb.append(", for version: ").append(v.toString()).append(".");
- return sb.toString();
+
+ sb.append(", isPrivate: ");
+ sb.append(isPrivate);
+
+ if(v.isPresent()){
+ sb.append(", for version: ").append(v.get().toString()).append(".");
+ }
+ return sb.toString();
}
}
+
+
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/JsonIngestor.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/JsonIngestor.java
index 29a2e3b9..16562756 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/JsonIngestor.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/JsonIngestor.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
@@ -25,13 +23,10 @@ package org.onap.aai.edges;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
@@ -44,15 +39,15 @@ public class JsonIngestor {
/**
* Reads in given json files to queryable DocumentContexts.
*
- * @param Map<Version, List<String>> filesToIngest - map of filenames to ingest
+ * @param filesToIngest - map of filenames to ingest
* per Version
- * @return Map<Version, List<DocumentContext>> - map of DocumentContexts per Version
+ * @return Map<SchemaVersion, List<DocumentContext>> - map of DocumentContexts per Version
*/
- public Map<Version, List<DocumentContext>> ingest(Map<Version, List<String>> filesToIngest) {
- Map<Version, List<DocumentContext>> result = new EnumMap<>(Version.class);
+ public Map<SchemaVersion, List<DocumentContext>> ingest(Map<SchemaVersion, List<String>> filesToIngest) {
+ Map<SchemaVersion, List<DocumentContext>> result = new HashMap<>();
- for (Entry<Version, List<String>> verFiles : filesToIngest.entrySet()) {
- Version v = verFiles.getKey();
+ for (Entry<SchemaVersion, List<String>> verFiles : filesToIngest.entrySet()) {
+ SchemaVersion v = verFiles.getKey();
List<String> files = verFiles.getValue();
List<DocumentContext> docs = new ArrayList<>();
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/TypeAlphabetizer.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/TypeAlphabetizer.java
index 2106d3a5..fd1f5113 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/TypeAlphabetizer.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/TypeAlphabetizer.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/AAIDirection.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/AAIDirection.java
index 3f748a50..aeb5d77d 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/AAIDirection.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/AAIDirection.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.enums;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/DirectionNotation.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/DirectionNotation.java
index 203249a4..5a69603b 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/DirectionNotation.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/DirectionNotation.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.enums;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeField.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeField.java
index 3e896f61..ff6bc82d 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeField.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeField.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.enums;
@@ -36,6 +34,7 @@ public enum EdgeField {
DELETE_OTHER_V("delete-other-v"),
PREVENT_DELETE("prevent-delete"),
DEFAULT("default"),
+ PRIVATE("private"),
DESCRIPTION("description");
private final String name;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeProperty.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeProperty.java
index 2f6afa47..18e82f5e 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeProperty.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeProperty.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.enums;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeType.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeType.java
index 00dce0fd..3ae59ab7 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeType.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/EdgeType.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.enums;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/MultiplicityRule.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/MultiplicityRule.java
index 4fc8938d..a29b4a61 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/MultiplicityRule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/enums/MultiplicityRule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.enums;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/AmbiguousRuleChoiceException.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/AmbiguousRuleChoiceException.java
index ebb9739b..b218cecd 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/AmbiguousRuleChoiceException.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/AmbiguousRuleChoiceException.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.exceptions;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/EdgeRuleNotFoundException.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/EdgeRuleNotFoundException.java
index e1a8fe6b..4d339de2 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/EdgeRuleNotFoundException.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/exceptions/EdgeRuleNotFoundException.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges.exceptions;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/nodes/NodeIngestor.java b/aai-schema-ingest/src/main/java/org/onap/aai/nodes/NodeIngestor.java
index bafc6b32..95232386 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/nodes/NodeIngestor.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/nodes/NodeIngestor.java
@@ -1,8 +1,8 @@
-/**
+/**
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.nodes;
@@ -27,14 +25,17 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.util.*;
+import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.xml.XMLConstants;
import javax.xml.bind.JAXBException;
@@ -45,11 +46,13 @@ import javax.xml.parsers.ParserConfigurationException;
import org.eclipse.persistence.jaxb.JAXBContextProperties;
import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory;
+
import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.w3c.dom.Document;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
@@ -60,87 +63,133 @@ import com.google.common.base.CaseFormat;
* NodeIngestor - ingests A&AI OXM files per given config, serves DynamicJAXBContext per version
*/
public class NodeIngestor {
-
- private Map<Version, DynamicJAXBContext> versionContextMap = new EnumMap<>(Version.class);
- private Map<Version, Set<String>> typesPerVersion = new EnumMap<>(Version.class);
-
+
+
+ private Map<SchemaVersion, DynamicJAXBContext> versionContextMap = new TreeMap<>();
+ private Map<SchemaVersion, Set<String>> typesPerVersion = new TreeMap<>();
+ private Map<SchemaVersion, Document> schemaPerVersion = new TreeMap<>();
+ private static final Pattern classNamePattern = Pattern.compile("\\.(v\\d+)\\.");
+
+ private ConfigTranslator translator;
+
+
@Autowired
/**
* Instantiates the NodeIngestor bean.
- *
+ *
* @param translator - ConfigTranslator autowired in by Spring framework which
* contains the configuration information needed to ingest the desired files.
*/
public NodeIngestor(ConfigTranslator translator) {
- Map<Version, List<String>> filesToIngest = translator.getNodeFiles();
-
+ this.translator = translator;
+ Map<SchemaVersion, List<String>> filesToIngest = translator.getNodeFiles();
+
try {
- for (Entry<Version, List<String>> verFiles : filesToIngest.entrySet()) {
- Version v = verFiles.getKey();
+ for (Entry<SchemaVersion, List<String>> verFiles : filesToIngest.entrySet()) {
+ SchemaVersion v = verFiles.getKey();
List<String> files = verFiles.getValue();
final DynamicJAXBContext ctx = ingest(files);
versionContextMap.put(v, ctx);
typesPerVersion.put(v, getAllNodeTypes(files));
+ schemaPerVersion.put(v, createCombinedSchema(files, v));
}
} catch (JAXBException | ParserConfigurationException | SAXException | IOException e) {
throw new ExceptionInInitializerError(e);
}
}
-
+
/**
* Ingests the given OXM files into DynamicJAXBContext
- *
+ *
* @param files - List<String> of full filenames (ie including the path) to be ingested
- *
+ *
* @return DynamicJAXBContext including schema information from all given files
- *
+ *
* @throws FileNotFoundException if an OXM file can't be found
* @throws JAXBException if there's an error creating the DynamicJAXBContext
*/
private DynamicJAXBContext ingest(List<String> files) throws FileNotFoundException, JAXBException {
List<InputStream> streams = new ArrayList<>();
-
+
for (String name : files) {
streams.add(new FileInputStream(new File(name)));
}
-
- Map<String, Object> properties = new HashMap<>();
+
+ Map<String, Object> properties = new HashMap<>();
properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, streams);
return DynamicJAXBContextFactory.createContextFromOXM(this.getClass().getClassLoader(), properties);
}
-
+
+
+
private Set<String> getAllNodeTypes(List<String> files) throws ParserConfigurationException, SAXException, IOException {
Set<String> types = new HashSet<>();
-
final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
final DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
-
+
+ ArrayList<Node> javaTypes = new ArrayList<Node>();
for (String file : files) {
InputStream inputStream = new FileInputStream(file);
-
+
final Document doc = docBuilder.parse(inputStream);
final NodeList list = doc.getElementsByTagName("java-type");
-
+
for (int i = 0; i < list.getLength(); i++) {
String type = list.item(i).getAttributes().getNamedItem("name").getNodeValue();
+ javaTypes.add(list.item(i));
types.add(CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, type));
}
}
-
+
return types;
}
+
+ private Document createCombinedSchema(List<String> files,SchemaVersion v) throws ParserConfigurationException, SAXException, IOException {
+ final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+ final DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+ DocumentBuilder masterDocBuilder = docFactory.newDocumentBuilder();
+ Document combinedDoc = masterDocBuilder.parse(getShell(v));
+ NodeList masterList = combinedDoc.getElementsByTagName("java-types");
+ Node javaTypesContainer = masterList.getLength() == 0 ? combinedDoc.getDocumentElement() : masterList.item(0);
+ for (String file : files) {
+ InputStream inputStream = new FileInputStream(file);
+
+ final Document doc = docBuilder.parse(inputStream);
+ final NodeList list = doc.getElementsByTagName("java-type");
+ for (int i = 0; i < list.getLength(); i++) {
+ Node copy = combinedDoc.importNode(list.item(i),true);
+ javaTypesContainer.appendChild(copy);
+ }
+ }
+ return combinedDoc;
+ }
/**
* Gets the DynamicJAXBContext for the given version
- *
- * @param Version v
+ *
+ * @param v
* @return DynamicJAXBContext
*/
- public DynamicJAXBContext getContextForVersion(Version v) {
+ public DynamicJAXBContext getContextForVersion(SchemaVersion v) {
return versionContextMap.get(v);
}
-
+
+ /**
+ * Determines if the given version contains the given node type
+ *
+ * @param nodeType - node type to check, must be in lower hyphen form (ie "type-name")
+ * @param v - schema version to check against
+ * @return
+ */
+ public boolean hasNodeType(String nodeType, SchemaVersion v) {
+ return typesPerVersion.get(v).contains(nodeType);
+ }
+
+ public Set<String> getObjectsInVersion(SchemaVersion v){
+ return typesPerVersion.get(v);
+ }
/**
* Determines if the given version contains the given node type
*
@@ -148,7 +197,33 @@ public class NodeIngestor {
* @param v
* @return
*/
- public boolean hasNodeType(String nodeType, Version v) {
- return typesPerVersion.get(v).contains(nodeType);
+ public Document getSchema(SchemaVersion v) {
+ return schemaPerVersion.get(v);
+ }
+
+ private InputStream getShell(SchemaVersion v) {
+ String source = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<xml-bindings xmlns=\"http://www.eclipse.org/eclipselink/xsds/persistence/oxm\" package-name=\"inventory.aai.onap.org."+v.toString().toLowerCase()+"\" xml-mapping-metadata-complete=\"true\">\n" +
+ " <xml-schema element-form-default=\"QUALIFIED\">\n" +
+ " <xml-ns namespace-uri=\"http://org.onap.aai.inventory/"+v.toString().toLowerCase()+"\" />\n" +
+ " </xml-schema>\n" +
+ " <java-types>\n" +
+ " </java-types>\\n" +
+ "</xml-bindings>";
+// source.rep.replace("v11", v.toString());
+ return new ByteArrayInputStream(source.getBytes(StandardCharsets.UTF_8));
+ }
+
+
+ public SchemaVersion getVersionFromClassName (String classname) {
+ Matcher m = classNamePattern.matcher(classname);
+ String version = null;
+ if (m.find()) {
+ version = m.group(1);
+ return new SchemaVersion(version);
+ } else {
+ return translator.getSchemaVersions().getDefaultVersion();
+ }
}
}
+
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/AAIConfigTranslator.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/AAIConfigTranslator.java
new file mode 100644
index 00000000..2cb0c99b
--- /dev/null
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/setup/AAIConfigTranslator.java
@@ -0,0 +1,112 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.setup;
+
+import java.io.File;
+import java.util.*;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * <b>AAIConfigTranslator</b> is responsible for looking at the
+ * schema files and edge files based on the available versions
+ * Also has the ability to exclude them based on the node.exclusion.pattern
+ */
+public class AAIConfigTranslator extends ConfigTranslator {
+
+ private static final String FILESEP = (System.getProperty("file.separator") == null) ? "/" : System.getProperty("file.separator");
+
+ public AAIConfigTranslator(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
+ }
+
+ /* (non-Javadoc)
+ * @see org.onap.aai.setup.ConfigTranslator#getNodeFiles()
+ */
+ @Override
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
+
+ Map<SchemaVersion, List<String>> files = new TreeMap<>();
+ for (SchemaVersion v : schemaVersions.getVersions()) {
+ List<String> container = getVersionNodeFiles(v);
+ files.put(v, container);
+ }
+
+ return files;
+ }
+
+
+ private List<String> getVersionNodeFiles(SchemaVersion v) {
+
+ return getVersionFiles(
+ bean.getNodeDirectory(),
+ v,
+ () -> bean.getNodesInclusionPattern().stream(),
+ () -> bean.getNodesExclusionPattern().stream()
+ );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.onap.aai.setup.ConfigTranslator#getEdgeFiles()
+ */
+ @Override
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
+
+ Map<SchemaVersion, List<String>> files = new TreeMap<>();
+ for (SchemaVersion v : schemaVersions.getVersions()) {
+ List<String> container = getVersionEdgeFiles(v);
+ files.put(v, container);
+ }
+
+ return files;
+ }
+
+ private List<String> getVersionEdgeFiles(SchemaVersion v) {
+
+ return getVersionFiles(
+ bean.getEdgeDirectory(),
+ v,
+ () -> bean.getEdgesInclusionPattern().stream(),
+ () -> bean.getEdgesExclusionPattern().stream()
+ );
+ }
+
+ private List<String> getVersionFiles(
+ String startDirectory,
+ SchemaVersion schemaVersion,
+ Supplier<Stream<String>> inclusionPattern,
+ Supplier<Stream<String>> exclusionPattern
+ ){
+
+ List<String> container;
+ final String directoryName = startDirectory + FILESEP + schemaVersion.toString() + FILESEP;
+
+ container = Arrays.stream(new File(directoryName).listFiles())
+ .map(File::getName)
+ .filter(name -> inclusionPattern.get().anyMatch(name::matches))
+ .map(name -> directoryName + name)
+ .filter(name -> exclusionPattern.get().noneMatch(name::matches))
+ .collect(Collectors.toList());
+
+ return container;
+ }
+}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/ConfigTranslator.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/ConfigTranslator.java
index b34622de..ccbe7065 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/setup/ConfigTranslator.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/setup/ConfigTranslator.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
@@ -35,10 +33,12 @@ import org.springframework.beans.factory.annotation.Autowired;
*/
public abstract class ConfigTranslator {
protected SchemaLocationsBean bean;
+ protected SchemaVersions schemaVersions;
@Autowired
- public ConfigTranslator(SchemaLocationsBean bean) {
- this.bean = bean;
+ public ConfigTranslator(SchemaLocationsBean schemaLocationbean, SchemaVersions schemaVersions) {
+ this.bean = schemaLocationbean;
+ this.schemaVersions = schemaVersions;
}
/**
@@ -48,7 +48,7 @@ public abstract class ConfigTranslator {
* @return Map of Version to the list of (string) filenames to be
* ingested for that version
*/
- public abstract Map<Version, List<String>> getNodeFiles();
+ public abstract Map<SchemaVersion, List<String>> getNodeFiles();
/**
* Translates the contents of the schema config file
@@ -57,5 +57,9 @@ public abstract class ConfigTranslator {
* @return Map of Version to the List of (String) filenames to be
* ingested for that version
*/
- public abstract Map<Version, List<String>> getEdgeFiles();
+ public abstract Map<SchemaVersion, List<String>> getEdgeFiles();
+
+ public SchemaVersions getSchemaVersions(){
+ return schemaVersions;
+ }
}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaLocationsBean.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaLocationsBean.java
index b5b878af..e3cd7236 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaLocationsBean.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaLocationsBean.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
@@ -28,32 +26,47 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import java.util.Collections;
+import java.util.List;
+
@Configuration
-@PropertySource(value = "classpath:schemaIngest.properties", ignoreResourceNotFound=true)
-@PropertySource(value = "file:${schemaIngestPropLoc}", ignoreResourceNotFound=true)
+@PropertySource(value = "classpath:schema-ingest.properties", ignoreResourceNotFound=true)
+@PropertySource(value = "file:${schema.ingest.file}", ignoreResourceNotFound=true)
public class SchemaLocationsBean {
/*
* Per Spring documentation, the last PropertySource that works will
- * be applied. Here, schemaIngestPropLoc will be an environment variable
+ * be applied. Here, schema.ingest.file will be an environment variable
* set on install that tells Spring where to look for the schema
* ingest properties file (and the actual filename), but the former
* PropertySource gives the default of looking on the classpath for
- * schemaIngest.properties in case that second one doesn't work.
+ * schema-ingest.properties in case that second one doesn't work.
*
- * The schemaIngest.properties file (or its equivalent if you choose
+ * The schema-ingest.properties file (or its equivalent if you choose
* to name it otherwise) must contain the entries the below @Value
* annotations are looking for.
*/
- @Value("${schemaConfig}")
+ @Value("${schema.configuration.location}")
private String schemaConfigLoc;
- @Value("${nodeDir}")
+ @Value("${schema.nodes.location}")
private String nodeDirectory;
- @Value("${edgeDir}")
+ @Value("${schema.edges.location}")
private String edgeDirectory;
-
+
+ @Value("${schema.nodes.inclusion.list:}#{T(java.util.Arrays).asList(\".*oxm(.*).xml\")}")
+ private List<String> nodesInclusionPattern;
+
+ @Value("${schema.nodes.exclusion.list:}#{T(java.util.Collections).emptyList()}")
+ private List<String> nodesExclusionPattern;
+
+ @Value("${schema.edges.inclusion.list:}#{T(java.util.Arrays).asList(\"DbEdgeRules_.*.json\")}")
+ private List<String> edgesInclusionPattern;
+
+ @Value("${schema.edges.exclusion.list:}#{T(java.util.Collections).emptyList()}")
+ private List<String> edgesExclusionPattern;
+
/**
* @return the file name/location with the list of schema files to be ingested
*/
@@ -64,7 +77,7 @@ public class SchemaLocationsBean {
/**
* Sets the name/location of the file with the list of schema files to ingest
*
- * @param String schemaConfigLoc - the file name/location
+ * @param schemaConfigLoc - the file name/location
*/
public void setSchemaConfigLocation(String schemaConfigLoc) {
this.schemaConfigLoc = schemaConfigLoc;
@@ -80,7 +93,7 @@ public class SchemaLocationsBean {
/**
* Sets the location of the OXM files
*
- * @param String nodeDirectory - the location of the OXM files
+ * @param nodeDirectory - the location of the OXM files
*/
public void setNodeDirectory(String nodeDirectory) {
this.nodeDirectory = nodeDirectory;
@@ -96,12 +109,28 @@ public class SchemaLocationsBean {
/**
* Sets the location of the edge rule json files
*
- * @param String edgeDirectory - the location of the edge rule files
+ * @param edgeDirectory - the location of the edge rule files
*/
public void setEdgeDirectory(String edgeDirectory) {
this.edgeDirectory = edgeDirectory;
}
-
+
+ public List<String> getNodesExclusionPattern(){
+ return this.nodesExclusionPattern;
+ }
+
+ public List<String> getNodesInclusionPattern(){
+ return this.nodesInclusionPattern;
+ }
+
+ public List<String> getEdgesExclusionPattern(){
+ return this.edgesExclusionPattern;
+ }
+
+ public List<String> getEdgesInclusionPattern(){
+ return this.edgesInclusionPattern;
+ }
+
//this allows the code to actually read the value from the config file
//without this those strings get set to literally "${edgeDir}" etc
@Bean
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersion.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersion.java
new file mode 100644
index 00000000..c744c5a3
--- /dev/null
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersion.java
@@ -0,0 +1,85 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.setup;
+
+import org.onap.aai.validation.AAISchemaValidationException;
+
+import java.util.Comparator;
+import java.util.regex.Pattern;
+
+public class SchemaVersion implements Comparable<SchemaVersion> {
+
+ public static final Pattern VERSION_PATTERN = Pattern.compile("v[1-9][0-9]*");
+
+ private final String value;
+
+ public SchemaVersion(String value){
+
+ if(!VERSION_PATTERN.matcher(value).matches()){
+ throw new AAISchemaValidationException("Invalid Schema Version " + value + ", value doesn't match the expected regex: " + VERSION_PATTERN);
+ }
+
+ this.value = value;
+ }
+
+ @Override
+ public int hashCode(){
+ return value.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object other){
+ if(this == other){
+ return true;
+ }
+
+ if(other == null){
+ return false;
+ }
+
+ if(!(other instanceof SchemaVersion)){
+ return false;
+ }
+
+ SchemaVersion obj = (SchemaVersion)other;
+ return this.value.equals(obj.value);
+ }
+
+ @Override
+ public String toString(){
+ return value;
+ }
+
+ @Override
+ public int compareTo(SchemaVersion o) {
+
+ if(o == null){
+ return -1;
+ }
+
+ // Requires to convert to integer to match the past behavior
+ // Otherwise the string comparison of versions aren't working as expected
+
+ Integer tVal = Integer.parseInt(this.value.replaceAll("v", ""));
+ Integer oVal = Integer.parseInt(o.value.replaceAll("v", ""));
+
+ return tVal.compareTo(oVal);
+ }
+}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersions.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersions.java
new file mode 100644
index 00000000..2205b14b
--- /dev/null
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/setup/SchemaVersions.java
@@ -0,0 +1,159 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.setup;
+
+import org.onap.aai.validation.AAISchemaValidationException;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.xml.validation.Schema;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@PropertySource(value = "classpath:schema-ingest.properties", ignoreResourceNotFound = true)
+@PropertySource(value = "file:${schema.ingest.file}", ignoreResourceNotFound = true)
+public class SchemaVersions {
+
+ @Value("#{'${schema.version.list}'.split(',')}")
+ private List<String> apiVersions;
+
+ @Value("${schema.version.api.default}")
+ private String defaultApiVersion;
+
+ @Value("${schema.version.edge.label.start}")
+ private String edgeLabelStartVersion;
+
+ @Value("${schema.version.depth.start}")
+ private String depthStartVersion;
+
+ @Value("${schema.version.app.root.start}")
+ private String appRootStartVersion;
+
+ @Value("${schema.version.related.link.start}")
+ private String relatedLinkStartVersion;
+
+ @Value("${schema.version.namespace.change.start}")
+ private String namespaceChangeStartVersion;
+
+ private List<SchemaVersion> versions;
+
+ private SchemaVersion edgeLabelVersion;
+ private SchemaVersion defaultVersion;
+ private SchemaVersion depthVersion;
+ private SchemaVersion appRootVersion;
+ private SchemaVersion relatedLinkVersion;
+ private SchemaVersion namespaceChangeVersion;
+
+ @PostConstruct
+ public void initialize() {
+ versions = apiVersions.stream().map(SchemaVersion::new).collect(Collectors.toList());
+
+ edgeLabelVersion = new SchemaVersion(edgeLabelStartVersion);
+ defaultVersion = new SchemaVersion(defaultApiVersion);
+ depthVersion = new SchemaVersion(depthStartVersion);
+ appRootVersion = new SchemaVersion(appRootStartVersion);
+ relatedLinkVersion = new SchemaVersion(relatedLinkStartVersion);
+ namespaceChangeVersion = new SchemaVersion(namespaceChangeStartVersion);
+
+ if (!versions.contains(edgeLabelVersion)) {
+ throw new AAISchemaValidationException(
+ "Invalid, edge label version is not in the api versions list"
+ + ", please check schema.version.list and ensure that the"
+ + " schema.version.edge.label.start is in that list"
+ );
+ }
+
+ if (!versions.contains(defaultVersion)) {
+ throw new AAISchemaValidationException(
+ "Invalid, default version is not in the api versions list"
+ + ", please check schema.version.list and ensure that the"
+ + " schema.version.api.default is in that list"
+ );
+ }
+
+ if (!versions.contains(depthVersion)) {
+ throw new AAISchemaValidationException(
+ "Invalid, depth version is not in the api versions list"
+ + ", please check schema.version.list and ensure that the"
+ + " schema.version.depth.start is in that list"
+ );
+ }
+
+ if(!versions.contains(appRootVersion)){
+ throw new AAISchemaValidationException(
+ "Invalid, app root version is not in the api versions list"
+ + ", please check schema.version.list and ensure that the"
+ + " schema.version.app.root.start is in that list"
+ );
+ }
+
+ if(!versions.contains(relatedLinkVersion)){
+ throw new AAISchemaValidationException(
+ "Invalid, related link version is not in the api versions list"
+ + ", please check schema.version.list and ensure that the"
+ + " schema.version.related.link.start is in that list"
+ );
+ }
+
+ if(!versions.contains(namespaceChangeVersion)){
+ throw new AAISchemaValidationException(
+ "Invalid, namespace change start version is not in the api versions list"
+ + ", please check schema.version.list and ensure that the"
+ + " schema.version.related.link.start is in that list"
+ );
+ }
+ }
+
+ public List<SchemaVersion> getVersions() {
+ return versions;
+ }
+
+ public SchemaVersion getEdgeLabelVersion() {
+ return edgeLabelVersion;
+ }
+
+ public SchemaVersion getDefaultVersion() {
+ return defaultVersion;
+ }
+
+ public SchemaVersion getDepthVersion() {
+ return depthVersion;
+ }
+
+ public SchemaVersion getAppRootVersion(){
+ return appRootVersion;
+ }
+
+ public SchemaVersion getRelatedLinkVersion(){
+ return relatedLinkVersion;
+ }
+
+ public SchemaVersion getNamespaceChangeVersion() {
+ return namespaceChangeVersion;
+ }
+
+ public void setNamespaceChangeVersion(SchemaVersion namespaceChangeVersion) {
+ this.namespaceChangeVersion = namespaceChangeVersion;
+ }
+
+}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/setup/Version.java b/aai-schema-ingest/src/main/java/org/onap/aai/setup/Version.java
deleted file mode 100644
index 1fd1481d..00000000
--- a/aai-schema-ingest/src/main/java/org/onap/aai/setup/Version.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.onap.aai.setup;
-
-public enum Version {
- V7,
- V8,
- V9,
- V10,
- V11,
- V12,
- V13;
-
- public static boolean isLatest(Version v) {
- return getLatest().equals(v);
- }
-
- public static Version getLatest(){
- Version[] vals = values(); //guaranteed to be in declaration order
- return vals[vals.length-1]; //requires we always have the latest version listed last
- }
-}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/AAISchemaValidationException.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/AAISchemaValidationException.java
index a3784b77..3fd536b0 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/AAISchemaValidationException.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/AAISchemaValidationException.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/CheckEverythingStrategy.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/CheckEverythingStrategy.java
index d8b4eb39..768c18bd 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/CheckEverythingStrategy.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/CheckEverythingStrategy.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
/**
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/DefaultVersionValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/DefaultVersionValidationModule.java
index d1f5647b..7eae7508 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/DefaultVersionValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/DefaultVersionValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
/**
@@ -29,7 +27,7 @@ import java.util.List;
import java.util.Map;
import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -52,12 +50,12 @@ public class DefaultVersionValidationModule implements VersionValidationModule {
*/
@Override
public String validate() {
- Map<Version, List<String>> nodeConfig = config.getNodeFiles();
- Map<Version, List<String>> edgeConfig = config.getEdgeFiles();
+ Map<SchemaVersion, List<String>> nodeConfig = config.getNodeFiles();
+ Map<SchemaVersion, List<String>> edgeConfig = config.getEdgeFiles();
StringBuilder missingVers = new StringBuilder().append("Missing schema for the following versions: ");
boolean isMissing = false;
- for (Version v : Version.values()) {
+ for (SchemaVersion v : config.getSchemaVersions().getVersions()) {
if (nodeConfig.get(v) == null) {
isMissing = true;
missingVers.append(v.toString()).append(" has no OXM configured. ");
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/FailFastStrategy.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/FailFastStrategy.java
index 07180855..2c21e685 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/FailFastStrategy.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/FailFastStrategy.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
/**
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/SchemaErrorStrategy.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/SchemaErrorStrategy.java
index 0f2f2673..cefc29c2 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/SchemaErrorStrategy.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/SchemaErrorStrategy.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidationModule.java
index e0b6e12a..b87be79a 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidator.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidator.java
index 24c05db0..612da353 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidator.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/VersionValidator.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/CousinDefaultingValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/CousinDefaultingValidationModule.java
index 85b4dc64..05b79753 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/CousinDefaultingValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/CousinDefaultingValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -51,7 +49,7 @@ public class CousinDefaultingValidationModule {
*/
public String validate(String nodeTypePair, List<DocumentContext> ctxs) {
String[] types = nodeTypePair.split("\\|");
- EdgeRuleQuery lookup = new EdgeRuleQuery.Builder(types[0], types[1]).edgeType(EdgeType.COUSIN).build();
+ EdgeRuleQuery lookup = new Builder(types[0], types[1]).edgeType(EdgeType.COUSIN).build();
List<Map<String, String>> rules = new ArrayList<>();
for (DocumentContext ctx : ctxs) {
rules.addAll(ctx.read("$.rules.[?]", lookup.getFilter()));
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModule.java
index ff58e7dd..01e9e296 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
/**
@@ -47,7 +45,7 @@ public class DefaultEdgeFieldsValidationModule implements EdgeFieldsValidationMo
EnumSet<EdgeField> missingFields = EnumSet.complementOf(EnumSet.allOf(EdgeField.class));
for (EdgeField f : EdgeField.values()) {
- if (!rule.containsKey(f.toString()) && (f != EdgeField.DESCRIPTION)) { //description is optional
+ if (!rule.containsKey(f.toString()) && (f != EdgeField.DESCRIPTION) && (f != EdgeField.PRIVATE)) { //description is optional
missingFields.add(f);
}
}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeFieldsValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeFieldsValidationModule.java
index b2d153fa..10ac1892 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeFieldsValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeFieldsValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java
index 34c603aa..309d8945 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -26,14 +24,13 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
import org.onap.aai.edges.JsonIngestor;
import org.onap.aai.edges.TypeAlphabetizer;
import org.onap.aai.edges.enums.EdgeField;
import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import org.onap.aai.validation.SchemaErrorStrategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -45,7 +42,7 @@ import com.jayway.jsonpath.DocumentContext;
*/
@Component
public class EdgeRuleValidator {
- private Map<Version, List<DocumentContext>> versionJsonFilesMap;
+ private Map<SchemaVersion, List<DocumentContext>> versionJsonFilesMap;
private final SchemaErrorStrategy strat;
protected final EdgeFieldsValidationModule fieldValidator;
protected final UniqueLabelValidationModule labelValidator;
@@ -69,8 +66,8 @@ public class EdgeRuleValidator {
public boolean validate() {
- for (Entry<Version, List<DocumentContext>> verEntry : versionJsonFilesMap.entrySet()) {
- Version v = verEntry.getKey();
+ for (Map.Entry<SchemaVersion, List<DocumentContext>> verEntry : versionJsonFilesMap.entrySet()) {
+ SchemaVersion v = verEntry.getKey();
List<DocumentContext> ctxs = verEntry.getValue();
List<Map<String, String>> rules = collectRules(ctxs);
Set<String> nodeTypePairs = new HashSet<>();
@@ -89,7 +86,7 @@ public class EdgeRuleValidator {
handleResult(typeValidator.validate(nodeTypePairs, v));
}
-
+
return strat.isOK();
}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/NodeTypesValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/NodeTypesValidationModule.java
index 6d061245..b4ed3782 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/NodeTypesValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/NodeTypesValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -27,7 +25,7 @@ import java.util.HashSet;
import java.util.Set;
import org.onap.aai.nodes.NodeIngestor;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -50,13 +48,13 @@ public class NodeTypesValidationModule {
* Validate that every node type in the given set is defined in
* the OXM for the given version
*
- * @param Collection<String> nodeTypes - all the node types in
+ * @param nodeTypePairs - all the node types in
* the edge rules for the given version being validated
- * @param Version v - the version being validated
+ * @param v - the version being validated
* @return empty string if all types are present in the given version's ingested OXM, else
* appropriate error message
*/
- public String validate(Collection<String> nodeTypePairs, Version v) {
+ public String validate(Collection<String> nodeTypePairs, SchemaVersion v) {
//setup
Set<String> nodeTypes = new HashSet<>();
for (String pair : nodeTypePairs) {
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/SingleContainmentValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/SingleContainmentValidationModule.java
index 15e1c2aa..4586ccce 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/SingleContainmentValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/SingleContainmentValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/UniqueLabelValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/UniqueLabelValidationModule.java
index bed6cadd..103baaba 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/UniqueLabelValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/UniqueLabelValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -51,7 +49,7 @@ public class UniqueLabelValidationModule {
*/
public String validate(String nodeTypePair, List<DocumentContext> ctxs) {
String[] types = nodeTypePair.split("\\|");
- EdgeRuleQuery lookup = new EdgeRuleQuery.Builder(types[0], types[1]).build();
+ EdgeRuleQuery lookup = new Builder(types[0], types[1]).build();
List<Map<String, String>> rules = new ArrayList<>();
for (DocumentContext ctx : ctxs) {
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DefaultDuplicateNodeDefinitionValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DefaultDuplicateNodeDefinitionValidationModule.java
index f8536684..bbb3388f 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DefaultDuplicateNodeDefinitionValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DefaultDuplicateNodeDefinitionValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.nodes;
@@ -33,7 +31,7 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
@@ -55,7 +53,7 @@ public class DefaultDuplicateNodeDefinitionValidationModule implements Duplicate
* @see org.onap.aai.nodes.validation.DuplicateNodeDefinitionValidationModule#findDuplicates(java.util.List)
*/
@Override
- public String findDuplicates(List<String> files, Version v) {
+ public String findDuplicates(List<String> files, SchemaVersion v) {
try {
final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
@@ -88,7 +86,7 @@ public class DefaultDuplicateNodeDefinitionValidationModule implements Duplicate
}
}
- private String buildErrorMsg(Multimap<String, String> types, Version v) {
+ private String buildErrorMsg(Multimap<String, String> types, SchemaVersion v) {
StringBuilder errorMsg = new StringBuilder().append("Duplicates found in version ").append(v.toString()).append(". ");
for (String nodeType : types.keySet()) {
Collection<String> files = types.get(nodeType);
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DuplicateNodeDefinitionValidationModule.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DuplicateNodeDefinitionValidationModule.java
index b7cd4a07..5484adda 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DuplicateNodeDefinitionValidationModule.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/DuplicateNodeDefinitionValidationModule.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,15 +16,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.nodes;
import java.util.List;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
/**
* Defines rules for duplicate node definitions in a set of files
@@ -45,5 +43,5 @@ public interface DuplicateNodeDefinitionValidationModule {
* with appropriate information about what node types
* were found
*/
- public String findDuplicates(List<String> files, Version v);
+ String findDuplicates(List<String> files, SchemaVersion v);
}
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/NodeValidator.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/NodeValidator.java
index f8089a19..27a69f9b 100644
--- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/NodeValidator.java
+++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/nodes/NodeValidator.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.nodes;
@@ -26,7 +24,7 @@ import java.util.List;
import java.util.Map.Entry;
import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import org.onap.aai.validation.SchemaErrorStrategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -46,7 +44,7 @@ public class NodeValidator {
public boolean validate() {
- for(Entry<Version, List<String>> entry : translator.getNodeFiles().entrySet()) {
+ for(Entry<SchemaVersion, List<String>> entry : translator.getNodeFiles().entrySet()) {
String result = dupChecker.findDuplicates(entry.getValue(), entry.getKey());
if (!"".equals(result)) {
strat.notifyOnError(result);
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java
index 9f6d67a1..e8c946d9 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
@@ -36,17 +34,20 @@ import org.onap.aai.edges.enums.MultiplicityRule;
import org.onap.aai.edges.exceptions.AmbiguousRuleChoiceException;
import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.TestUtilConfigTranslator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.google.common.collect.Multimap;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, EdgeIngestor.class})
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, TestUtilConfigTranslator.class, EdgeIngestor.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class EdgeIngestorTest {
@Autowired
@@ -82,7 +83,7 @@ public class EdgeIngestorTest {
@Test
public void getRulesTest2() throws EdgeRuleNotFoundException {
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("puppy", "dog").build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("dog", "puppy").build();
Multimap<String, EdgeRule> results = ei.getRules(q);
assertTrue(results.size() == 1);
assertTrue(results.containsKey("dog|puppy"));
@@ -101,8 +102,49 @@ public class EdgeIngestorTest {
}
@Test
+ public void getRulesFlippedTypesTest() throws EdgeRuleNotFoundException {
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface", "logical-link").version(new SchemaVersion("v11")).build();
+ Multimap<String, EdgeRule> results = ei.getRules(q);
+ assertTrue(results.size() == 3);
+ for (EdgeRule r : results.get("l-interface|logical-link")) {
+ if ("org.onap.relationships.inventory.Source".equals(r.getLabel()) ||
+ "org.onap.relationships.inventory.Destination".equals(r.getLabel())) {
+ //these are defined with from=logical-link, to=l-interface, so they must be flipped
+ assertTrue(Direction.IN.equals(r.getDirection()));
+ } else if ("tosca.relationships.network.LinksTo".equals(r.getLabel())) {
+ //this is defined with from=l-interface, to=logical-link, so it shouldn't be flipped
+ assertTrue(Direction.OUT.equals(r.getDirection()));
+ } else {
+ fail("how did you get here");
+ }
+ }
+ }
+
+ @Test
+ public void fromToSameFlipTests() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
+ //getRules, setting from and to
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("bloop","bloop").version(new SchemaVersion("v11")).build();
+ Multimap<String, EdgeRule> results = ei.getRules(q);
+ assertTrue(results.size() == 1);
+ for (EdgeRule r : results.get("bloop|bloop")) {
+ assertTrue(Direction.IN.equals(r.getDirection()));
+ }
+
+ //getRule, setting just from
+ EdgeRuleQuery q2 = new EdgeRuleQuery.Builder("bloop").version(new SchemaVersion("v11")).build();
+ assertTrue(Direction.IN.equals(ei.getRule(q2).getDirection()));
+
+ //getChildRules
+ Multimap<String, EdgeRule> child = ei.getChildRules("bloop", new SchemaVersion("v11"));
+ assertTrue(child.size() == 1);
+ for (EdgeRule r : child.get("bloop|bloop")) {
+ assertTrue(Direction.IN.equals(r.getDirection()));
+ }
+ }
+
+ @Test
public void getRulesTest3() throws EdgeRuleNotFoundException {
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface").version(Version.V11).build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface").version(new SchemaVersion("v11")).build();
Multimap<String, EdgeRule> results = ei.getRules(q);
assertTrue(results.size() == 4);
assertTrue(results.containsKey("lag-interface|l-interface"));
@@ -120,7 +162,7 @@ public class EdgeIngestorTest {
@Test
public void getRuleSimpleTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("notation", "parent").build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("parent", "notation").build();
EdgeRule result = ei.getRule(q);
assertTrue("parent".equals(result.getFrom()));
assertTrue("notation".equals(result.getTo()));
@@ -134,8 +176,25 @@ public class EdgeIngestorTest {
}
@Test
+ public void getRuleFlippedTypesTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("notation", "parent").build();
+ EdgeRule result = ei.getRule(q);
+ assertTrue("parent".equals(result.getFrom()));
+ assertTrue("notation".equals(result.getTo()));
+ assertTrue("has".equals(result.getLabel()));
+ //direction flipped to match input order per old EdgeRules.java API
+ assertTrue(Direction.IN.equals(result.getDirection()));
+ assertTrue(MultiplicityRule.MANY2MANY.equals(result.getMultiplicityRule()));
+ assertTrue(AAIDirection.OUT.toString().equals(result.getContains()));
+ assertTrue(AAIDirection.NONE.toString().equals(result.getDeleteOtherV()));
+ assertTrue(AAIDirection.NONE.toString().equals(result.getPreventDelete()));
+ assertTrue("parent contains notation".equals(result.getDescription()));
+ }
+
+ @Test
public void getRuleWithDefaultTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").version(Version.V11).build();
+
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").version(new SchemaVersion("v11")).build();
EdgeRule res = ei.getRule(q);
assertTrue(res.isDefault());
assertTrue("tosca.relationships.network.LinksTo".equals(res.getLabel()));
@@ -143,7 +202,7 @@ public class EdgeIngestorTest {
@Test
public void getRuleWithNonDefault() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").label("org.onap.relationships.inventory.Source").version(Version.V11).build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("l-interface","logical-link").label("org.onap.relationships.inventory.Source").version(new SchemaVersion("v11")).build();
EdgeRule res = ei.getRule(q);
assertFalse(res.isDefault());
assertTrue("org.onap.relationships.inventory.Source".equals(res.getLabel()));
@@ -169,7 +228,7 @@ public class EdgeIngestorTest {
public void getRuleAmbiguousDefaultTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
thrown.expect(AmbiguousRuleChoiceException.class);
thrown.expectMessage("Multiple defaults found.");
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("seed","plant").version(Version.V11).build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("seed","plant").version(new SchemaVersion("v11")).build();
ei.getRule(q);
}
@@ -177,13 +236,13 @@ public class EdgeIngestorTest {
public void getRuleNoDefaultTest() throws EdgeRuleNotFoundException, AmbiguousRuleChoiceException {
thrown.expect(AmbiguousRuleChoiceException.class);
thrown.expectMessage("No default found.");
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("apple", "orange").version(Version.V11).build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("apple", "orange").version(new SchemaVersion("v11")).build();
ei.getRule(q);
}
@Test
public void hasRuleTest() {
- assertTrue(ei.hasRule(new EdgeRuleQuery.Builder("l-interface").version(Version.V11).build()));
+ assertTrue(ei.hasRule(new EdgeRuleQuery.Builder("l-interface").version(new SchemaVersion("v11")).build()));
assertFalse(ei.hasRule(new EdgeRuleQuery.Builder("l-interface").build()));
}
@@ -197,7 +256,7 @@ public class EdgeIngestorTest {
@Test
public void getCousinRulesWithVersionTest() {
- Multimap<String, EdgeRule> results = ei.getCousinRules("foo", Version.V10);
+ Multimap<String, EdgeRule> results = ei.getCousinRules("foo", new SchemaVersion("v10"));
assertTrue(results.size() == 2);
assertTrue(results.containsKey("bar|foo"));
assertTrue(results.get("bar|foo").size() == 2);
@@ -205,16 +264,16 @@ public class EdgeIngestorTest {
@Test
public void getCousinsNoneInVersionTest() {
- Multimap<String, EdgeRule> results = ei.getCousinRules("foo", Version.V11);
+ Multimap<String, EdgeRule> results = ei.getCousinRules("foo", new SchemaVersion("v11"));
assertTrue(results.isEmpty());
}
@Test
public void hasCousinTest() {
assertTrue(ei.hasCousinRule("foo"));
- assertTrue(ei.hasCousinRule("foo", Version.V10));
+ assertTrue(ei.hasCousinRule("foo", new SchemaVersion("v10")));
assertFalse(ei.hasCousinRule("parent"));
- assertFalse(ei.hasCousinRule("foo", Version.V11));
+ assertFalse(ei.hasCousinRule("foo", new SchemaVersion("v11")));
}
@Test
@@ -231,7 +290,7 @@ public class EdgeIngestorTest {
@Test
public void getChildRulesWithVersionTest() {
- Multimap<String, EdgeRule> results = ei.getChildRules("foo", Version.V10);
+ Multimap<String, EdgeRule> results = ei.getChildRules("foo", new SchemaVersion("v10"));
assertTrue(results.size() == 2);
assertTrue(results.containsKey("baz|foo"));
assertTrue(results.containsKey("foo|quux"));
@@ -239,16 +298,16 @@ public class EdgeIngestorTest {
@Test
public void getChildRulesNoneInVersionTest() {
- Multimap<String, EdgeRule> results = ei.getChildRules("foo", Version.V11);
+ Multimap<String, EdgeRule> results = ei.getChildRules("foo", new SchemaVersion("v11"));
assertTrue(results.isEmpty());
}
@Test
public void hasChildTest() {
assertTrue(ei.hasChildRule("foo"));
- assertTrue(ei.hasChildRule("foo", Version.V10));
+ assertTrue(ei.hasChildRule("foo", new SchemaVersion("v10")));
assertFalse(ei.hasChildRule("puppy"));
- assertFalse(ei.hasChildRule("foo", Version.V11));
+ assertFalse(ei.hasChildRule("foo", new SchemaVersion("v11")));
}
@Test
@@ -265,23 +324,23 @@ public class EdgeIngestorTest {
@Test
public void getParentRulesWithVersionTest() {
- Multimap<String, EdgeRule> results = ei.getParentRules("baz", Version.V10);
+ Multimap<String, EdgeRule> results = ei.getParentRules("baz", new SchemaVersion("v10"));
assertTrue(results.size() == 1);
assertTrue(results.containsKey("baz|foo"));
}
@Test
public void getParentRulesNoneInVersionTest() {
- Multimap<String, EdgeRule> results = ei.getParentRules("baz", Version.V11);
+ Multimap<String, EdgeRule> results = ei.getParentRules("baz", new SchemaVersion("v11"));
assertTrue(results.isEmpty());
}
@Test
public void hasParentTest() {
assertTrue(ei.hasParentRule("parent"));
- assertTrue(ei.hasParentRule("quux", Version.V10));
+ assertTrue(ei.hasParentRule("quux", new SchemaVersion("v10")));
assertFalse(ei.hasParentRule("puppy"));
- assertFalse(ei.hasParentRule("foo", Version.V11));
+ assertFalse(ei.hasParentRule("foo", new SchemaVersion("v11")));
}
@Test
@@ -292,7 +351,7 @@ public class EdgeIngestorTest {
@Test
public void getAllRulesTest() throws EdgeRuleNotFoundException {
- Multimap<String, EdgeRule> res = ei.getAllRules(Version.V10);
+ Multimap<String, EdgeRule> res = ei.getAllRules(new SchemaVersion("v10"));
assertTrue(res.size() == 4);
assertTrue(res.containsKey("bar|foo"));
assertTrue(res.get("bar|foo").size() == 2);
@@ -300,7 +359,7 @@ public class EdgeIngestorTest {
assertTrue(res.containsKey("foo|quux"));
thrown.expect(EdgeRuleNotFoundException.class);
- thrown.expectMessage("No rules found for version V9.");
- ei.getAllRules(Version.V9);
+ thrown.expectMessage("No rules found for version v9.");
+ ei.getAllRules(new SchemaVersion("v9"));
}
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java
index 74aceb51..cf23a702 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeIngestorWiringTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
@@ -28,7 +26,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.ConfigTranslatorForWiringTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -39,8 +38,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.google.common.collect.Multimap;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, ConfigTranslatorForWiringTest.class, EdgeIngestor.class})
-@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngestWiringTest.properties"})
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, ConfigTranslatorForWiringTest.class, EdgeIngestor.class})
+@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties"})
@SpringBootTest
public class EdgeIngestorWiringTest {
@Autowired
@@ -49,7 +48,7 @@ public class EdgeIngestorWiringTest {
@Test
public void test() throws EdgeRuleNotFoundException {
assertNotNull(ei);
- EdgeRuleQuery q = new EdgeRuleQuery.Builder("quux", "foo").label("dancesWith").version(Version.V10).build();
+ EdgeRuleQuery q = new EdgeRuleQuery.Builder("quux", "foo").label("dancesWith").version(new SchemaVersion("v10")).build();
Multimap<String, EdgeRule> results = ei.getRules(q);
assertTrue(results.size() == 1);
assertTrue(results.containsKey("foo|quux"));
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java
index f21246cb..da875ffe 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleQueryTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java
new file mode 100644
index 00000000..4be987e7
--- /dev/null
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/EdgeRuleTest.java
@@ -0,0 +1,59 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.edges;
+
+import static org.junit.Assert.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.junit.Test;
+
+public class EdgeRuleTest {
+
+ @Test
+ public void testFlipDirection() {
+ Map<String, String> rule = new HashMap<>();
+ rule.put("from", "foo");
+ rule.put("to", "bar");
+ rule.put("label", "links");
+ rule.put("contains-other-v", "NONE");
+ rule.put("delete-other-v", "NONE");
+ rule.put("prevent-delete", "NONE");
+ rule.put("multiplicity", "ONE2ONE");
+ rule.put("direction", "OUT");
+ rule.put("default", "true");
+ rule.put("private", "true");
+
+ EdgeRule r = new EdgeRule(rule);
+
+ r.flipDirection();
+ assertTrue(Direction.IN.equals(r.getDirection()));
+ r.flipDirection();
+ assertTrue(Direction.OUT.equals(r.getDirection()));
+
+ rule.put("direction", "BOTH");
+ EdgeRule r2 = new EdgeRule(rule);
+ r2.flipDirection();
+ assertTrue(Direction.BOTH.equals(r2.getDirection()));
+ }
+
+}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java
index 4bc23542..188848b7 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/JsonIngestorTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,21 +16,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
import static org.junit.Assert.*;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import org.junit.Test;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.Filter;
@@ -39,6 +34,10 @@ import static com.jayway.jsonpath.Filter.filter;
public class JsonIngestorTest {
+ private SchemaVersion LATEST = new SchemaVersion("v14");
+ private SchemaVersion V10 = new SchemaVersion("v10");
+ private SchemaVersion V11 = new SchemaVersion("v11");
+
@Test
public void test() {
//setup
@@ -46,29 +45,29 @@ public class JsonIngestorTest {
files.add("src/test/resources/edgeRules/test.json");
files.add("src/test/resources/edgeRules/test2.json");
files.add("src/test/resources/edgeRules/otherTestRules.json");
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
- input.put(Version.getLatest(), files);
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ input.put(LATEST, files);
List<String> files2 = new ArrayList<>();
files2.add("src/test/resources/edgeRules/test.json");
- input.put(Version.V10, files2);
+ input.put(V10, files2);
List<String> files3 = new ArrayList<>();
files3.add("src/test/resources/edgeRules/test3.json");
files3.add("src/test/resources/edgeRules/defaultEdgesTest.json");
- input.put(Version.V11, files3);
+ input.put(V11, files3);
//test
JsonIngestor ji = new JsonIngestor();
- Map<Version, List<DocumentContext>> results = ji.ingest(input);
+ Map<SchemaVersion, List<DocumentContext>> results = ji.ingest(input);
assertTrue(results.entrySet().size() == 3);
- assertTrue(results.get(Version.getLatest()).size() == 3);
- assertTrue(results.get(Version.V11).size() == 2);
- assertTrue(results.get(Version.V10).size() == 1);
+ assertTrue(results.get(LATEST).size() == 3);
+ assertTrue(results.get(V11).size() == 2);
+ assertTrue(results.get(V10).size() == 1);
Filter f = filter(where("from").is("foo").and("contains-other-v").is("NONE"));
- List<Map<String, String>> filterRes = results.get(Version.V10).get(0).read("$.rules.[?]",f);
+ List<Map<String, String>> filterRes = results.get(V10).get(0).read("$.rules.[?]",f);
assertTrue(filterRes.size() == 2);
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java
index 6c99a489..dd5da519 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/edges/TypeAlphabetizerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.edges;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java
index bcd58732..5421aa2a 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,30 +16,53 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.nodes;
+import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.*;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import javax.xml.bind.SchemaOutputResolver;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Result;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
import org.eclipse.persistence.dynamic.DynamicEntity;
+import org.eclipse.persistence.jaxb.JAXBContext;
import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.TestUtilConfigTranslator;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.w3c.dom.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, NodeIngestor.class})
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, TestUtilConfigTranslator.class, NodeIngestor.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class NodeIngestorTest {
@Autowired
@@ -52,10 +75,11 @@ public class NodeIngestorTest {
@Test
public void testGetContextForVersion() {
- DynamicJAXBContext ctx10 = ni.getContextForVersion(Version.V10);
+ DynamicJAXBContext ctx10 = ni.getContextForVersion(new SchemaVersion("v10"));
//should work bc Foo is valid in test_network_v10 schema
DynamicEntity foo10 = ctx10.newDynamicEntity("Foo");
+
foo10.set("fooId","bar");
assertTrue("bar".equals(foo10.get("fooId")));
@@ -63,9 +87,10 @@ public class NodeIngestorTest {
DynamicEntity bar10 = ctx10.newDynamicEntity("Bar");
bar10.set("barId","bar2");
assertTrue("bar2".equals(bar10.get("barId")));
+ XSDOutputResolver outputResolver10 = new XSDOutputResolver();
+ ctx10.generateSchema(outputResolver10);
-
- DynamicJAXBContext ctx11 = ni.getContextForVersion(Version.V11);
+ DynamicJAXBContext ctx11 = ni.getContextForVersion(new SchemaVersion("v11"));
//should work bc Foo.quantity is valid in test_network_v11 schema
DynamicEntity foo11 = ctx11.newDynamicEntity("Foo");
@@ -75,7 +100,9 @@ public class NodeIngestorTest {
DynamicEntity quux11 = ctx11.newDynamicEntity("Quux");
quux11.set("qManagerName","some guy");
assertTrue("some guy".equals(quux11.get("qManagerName")));
-
+ XSDOutputResolver outputResolver11 = new XSDOutputResolver();
+ ctx11.generateSchema(outputResolver11);
+
thrown.expect(IllegalArgumentException.class);
//should fail bc Quux not in v10 test schema
@@ -84,8 +111,55 @@ public class NodeIngestorTest {
@Test
public void testHasNodeType() {
- assertTrue(ni.hasNodeType("foo", Version.V11));
- assertTrue(ni.hasNodeType("quux", Version.V11));
- assertFalse(ni.hasNodeType("quux", Version.V10));
+ assertTrue(ni.hasNodeType("foo", new SchemaVersion("v11")));
+ assertTrue(ni.hasNodeType("quux", new SchemaVersion("v11")));
+ assertFalse(ni.hasNodeType("quux", new SchemaVersion("v10")));
+ }
+ @Test
+ public void testCombinedSchema() throws TransformerException, IOException {
+ DynamicJAXBContext ctx13 = ni.getContextForVersion(new SchemaVersion("v13"));
+ XSDOutputResolver outputResolver13 = new XSDOutputResolver();
+ ctx13.generateSchema(outputResolver13);
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ printDocument(ni.getSchema(new SchemaVersion("v13")),buffer);
+ String content = new String(Files.readAllBytes(Paths.get("src/test/resources/forWiringTests/aai_oxm_v13.xml")));
+ content = content.replaceAll("\\s+", "");
+ String expected = buffer.toString().replaceAll("\\s+", "");
+ assertThat("OXM:\n"+expected,expected, is(content));
+ }
+
+ public static void printDocument(Document doc, OutputStream out) throws IOException, TransformerException {
+ TransformerFactory tf = TransformerFactory.newInstance();
+ Transformer transformer = tf.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
+
+ transformer.transform(new DOMSource(doc),
+ new StreamResult(new OutputStreamWriter(out, "UTF-8")));
+ }
+
+ private class XSDOutputResolver extends SchemaOutputResolver {
+
+ @Override
+ public Result createOutput(String namespaceUri, String suggestedFileName)
+ throws IOException {
+
+ // create new file
+ // create stream result
+ File temp = File.createTempFile("schema", ".xsd");
+ StreamResult result = new StreamResult(temp);
+ System.out.println("Schema file: "+temp.getAbsolutePath());
+
+ // set system id
+ result.setSystemId(temp.toURI().toURL().toString());
+
+ // return result
+ return result;
+ }
}
}
+
+
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java
index e62cc6ab..2749cdb7 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/nodes/NodeIngestorWiringTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.nodes;
@@ -29,7 +27,8 @@ import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.ConfigTranslatorForWiringTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
@@ -38,8 +37,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, ConfigTranslatorForWiringTest.class, NodeIngestor.class})
-@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngestWiringTest.properties"})
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, ConfigTranslatorForWiringTest.class, NodeIngestor.class})
+@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties"})
@SpringBootTest
public class NodeIngestorWiringTest {
@Autowired
@@ -47,7 +46,7 @@ public class NodeIngestorWiringTest {
@Test
public void test() {
- DynamicJAXBContext ctx10 = ni.getContextForVersion(Version.V10);
+ DynamicJAXBContext ctx10 = ni.getContextForVersion(new SchemaVersion("v10"));
//should work bc Bar is valid in test_business_v10 schema
DynamicEntity bar10 = ctx10.newDynamicEntity("Bar");
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java
index 9d66551b..543284cb 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/ConfigTranslatorWiringTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
@@ -37,8 +35,8 @@ import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, ConfigTranslatorForWiringTest.class})
-@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngestWiringTest.properties"})
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, ConfigTranslatorForWiringTest.class})
+@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties"})
@SpringBootTest
public class ConfigTranslatorWiringTest {
@Autowired
@@ -47,15 +45,15 @@ public class ConfigTranslatorWiringTest {
@Test
public void test() {
assertNotNull(ct);
- Map<Version, List<String>> nodes = ct.getNodeFiles();
- assertTrue(nodes.containsKey(Version.V10));
- assertTrue(1 == nodes.get(Version.V10).size());
- assertTrue("src/test/resources/oxm/test_business_v10.xml".equals(nodes.get(Version.V10).get(0)));
+ Map<SchemaVersion, List<String>> nodes = ct.getNodeFiles();
+ assertTrue(nodes.containsKey(new SchemaVersion("v10")));
+ assertTrue(1 == nodes.get(new SchemaVersion("v10")).size());
+ assertTrue("src/test/resources/oxm/test_business_v10.xml".equals(nodes.get(new SchemaVersion("v10")).get(0)));
- Map<Version, List<String>> edges = ct.getEdgeFiles();
- assertTrue(edges.containsKey(Version.V10));
- assertTrue(1 == edges.get(Version.V10).size());
- assertTrue("src/test/resources/edgeRules/test.json".equals(edges.get(Version.V10).get(0)));
+ Map<SchemaVersion, List<String>> edges = ct.getEdgeFiles();
+ assertTrue(edges.containsKey(new SchemaVersion("v10")));
+ assertTrue(1 == edges.get(new SchemaVersion("v10")).size());
+ assertTrue("src/test/resources/edgeRules/test.json".equals(edges.get(new SchemaVersion("v10")).get(0)));
}
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java
index 5074f913..2103ac21 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanDefaultInjectionTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java
index f9d6b620..aed9c633 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanEnvVarInjectionTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
@@ -33,7 +31,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SchemaLocationsBean.class})
-@TestPropertySource(properties = {"schemaIngestPropLoc = src/test/resources/forWiringTests/schemaIngest2.properties"})
+@TestPropertySource(properties = {"schema.ingest.file = src/test/resources/forWiringTests/schema-ingest2.properties"})
public class SchemaLocationsBeanEnvVarInjectionTest {
@Autowired
SchemaLocationsBean bean;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java
index 0a22bbb0..99f2104a 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java
index 4604b045..150313b3 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/setup/SchemaLocationsBeanXMLSetterWithPropFileTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.setup;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java
index d6aee9a2..b2400aab 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadEdgeConfigForValidationTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,45 +16,40 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.testutils;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
-import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.*;
/**
* Good oxm, bad edge rules for rainy day edge rule validation testing
*/
public class BadEdgeConfigForValidationTest extends ConfigTranslator {
- public BadEdgeConfigForValidationTest(SchemaLocationsBean bean) {
- super(bean);
+ public static final SchemaVersion LATEST = new SchemaVersion("v14");
+
+ public BadEdgeConfigForValidationTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
}
@Override
- public Map<Version, List<String>> getNodeFiles() {
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
List<String> files = new ArrayList<>();
files.add("src/test/resources/oxm/goodConfigForValidationTest_oxm.xml");
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
- input.put(Version.getLatest(), files);
+ Map<SchemaVersion, List<String>> input = new HashMap<>();
+ input.put(LATEST, files);
return input;
}
@Override
- public Map<Version, List<String>> getEdgeFiles() {
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
List<String> files = new ArrayList<>();
files.add("src/test/resources/edgeRules/test3-butbad.json");
- input.put(Version.getLatest(), files);
+ input.put(LATEST, files);
return input;
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java
index a778e48a..9de21f31 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/BadNodeConfigForValidationTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,46 +16,41 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.testutils;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
-import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.*;
/**
* All schema files here are valid for sunny day validator testing
*/
public class BadNodeConfigForValidationTest extends ConfigTranslator {
- public BadNodeConfigForValidationTest(SchemaLocationsBean bean) {
- super(bean);
+ public static final SchemaVersion LATEST = new SchemaVersion("v14");
+
+ public BadNodeConfigForValidationTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
}
@Override
- public Map<Version, List<String>> getNodeFiles() {
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
List<String> files = new ArrayList<>();
files.add("src/test/resources/oxm/goodConfigForValidationTest_oxm.xml");
files.add("src/test/resources/oxm/badConfigForValidationTest_oxm.xml");
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
- input.put(Version.getLatest(), files);
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ input.put(LATEST, files);
return input;
}
@Override
- public Map<Version, List<String>> getEdgeFiles() {
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
List<String> files = new ArrayList<>();
files.add("src/test/resources/edgeRules/test3.json");
- input.put(Version.getLatest(), files);
+ input.put(LATEST, files);
return input;
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java
index 5e1b6c82..fc0a3984 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/ConfigTranslatorForWiringTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,44 +16,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.testutils;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
-import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.*;
public class ConfigTranslatorForWiringTest extends ConfigTranslator {
- public ConfigTranslatorForWiringTest(SchemaLocationsBean bean) {
- super(bean);
+ public ConfigTranslatorForWiringTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
}
@Override
- public Map<Version, List<String>> getNodeFiles() {
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
String f = bean.getNodeDirectory() + "test_business_v10.xml";
List<String> files = new ArrayList<>();
files.add(f);
- Map<Version, List<String>> mp = new EnumMap<>(Version.class);
- mp.put(Version.V10, files);
+ Map<SchemaVersion, List<String>> mp = new TreeMap<>();
+ mp.put(new SchemaVersion("v10"), files);
return mp;
}
@Override
- public Map<Version, List<String>> getEdgeFiles() {
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
String f = bean.getEdgeDirectory() + "test.json";
List<String> files = new ArrayList<>();
files.add(f);
- Map<Version, List<String>> mp = new EnumMap<>(Version.class);
- mp.put(Version.V10, files);
+ Map<SchemaVersion, List<String>> mp = new TreeMap<>();
+ mp.put(new SchemaVersion("v10"), files);
return mp;
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java
index 5efa2654..dd8d5977 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/GoodConfigForValidationTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,49 +16,48 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.testutils;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import org.onap.aai.setup.ConfigTranslator;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
/**
* All schema files here are valid for sunny day validator testing
*/
public class GoodConfigForValidationTest extends ConfigTranslator {
- public GoodConfigForValidationTest(SchemaLocationsBean bean) {
- super(bean);
+ private SchemaVersions schemaVersions;
+
+ public GoodConfigForValidationTest(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
+ this.schemaVersions = schemaVersions;
}
@Override
- public Map<Version, List<String>> getNodeFiles() {
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
List<String> files = new ArrayList<>();
files.add("src/test/resources/oxm/goodConfigForValidationTest_oxm.xml");
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
- //input.put(Version.getLatest(), files);
- for (Version v : Version.values()) {
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ //input.put(SchemaVersion.getLatest(), files);
+ for (SchemaVersion v : schemaVersions.getVersions()) {
input.put(v, files);
}
return input;
}
@Override
- public Map<Version, List<String>> getEdgeFiles() {
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
List<String> files = new ArrayList<>();
files.add("src/test/resources/edgeRules/test3.json");
- //input.put(Version.getLatest(), files);
- for (Version v : Version.values()) {
+ //input.put(SchemaVersion.getLatest(), files);
+ for (SchemaVersion v : schemaVersions.getVersions()) {
input.put(v, files);
}
return input;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java
new file mode 100644
index 00000000..66f2bea2
--- /dev/null
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/SchemaIncompleteTranslator.java
@@ -0,0 +1,82 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.testutils;
+
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.onap.aai.setup.ConfigTranslator;
+import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
+
+public class SchemaIncompleteTranslator extends ConfigTranslator {
+
+ public SchemaIncompleteTranslator(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
+ }
+
+ @Override
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
+ List<String> files10 = new ArrayList<>();
+ files10.add("src/test/resources/oxm/test_network_v10.xml");
+ files10.add("src/test/resources/oxm/test_business_v10.xml");
+
+ List<String> files11 = new ArrayList<>();
+ files11.add("src/test/resources/oxm/test_network_v11.xml");
+ files11.add("src/test/resources/oxm/test_business_v11.xml");
+
+ List<String> files12 = new ArrayList<>();
+ files12.add("src/test/resources/oxm/business_oxm_v12.xml");
+
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+
+
+ input.put(new SchemaVersion("v10"), files10);
+ input.put(new SchemaVersion("v11"), files11);
+ input.put(new SchemaVersion("v12"), files12);
+ return input;
+ }
+
+ @Override
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
+ List<String> files = new ArrayList<>();
+ files.add("src/test/resources/edgeRules/test.json");
+ files.add("src/test/resources/edgeRules/test2.json");
+ files.add("src/test/resources/edgeRules/otherTestRules.json");
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ input.put(schemaVersions.getDefaultVersion(), files);
+
+ List<String> files2 = new ArrayList<>();
+ files2.add("src/test/resources/edgeRules/test.json");
+ input.put(new SchemaVersion("v10"), files2);
+
+ List<String> files3 = new ArrayList<>();
+ files3.add("src/test/resources/edgeRules/test3.json");
+ files3.add("src/test/resources/edgeRules/defaultEdgesTest.json");
+ input.put(new SchemaVersion("v11"), files3);
+
+ return input;
+ }
+}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java
index 785b7403..b4756d64 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslator.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,29 +16,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.testutils;
-import java.util.ArrayList;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
-import org.onap.aai.setup.ConfigTranslator;
-import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.*;
public class TestUtilConfigTranslator extends ConfigTranslator {
-
- public TestUtilConfigTranslator(SchemaLocationsBean bean) {
- super(bean);
+
+ public static final SchemaVersion LATEST = new SchemaVersion("v14");
+ public TestUtilConfigTranslator(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
}
@Override
- public Map<Version, List<String>> getNodeFiles() {
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
List<String> files10 = new ArrayList<>();
files10.add("src/test/resources/oxm/test_network_v10.xml");
files10.add("src/test/resources/oxm/test_business_v10.xml");
@@ -47,30 +41,42 @@ public class TestUtilConfigTranslator extends ConfigTranslator {
files11.add("src/test/resources/oxm/test_network_v11.xml");
files11.add("src/test/resources/oxm/test_business_v11.xml");
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
- input.put(Version.V10, files10);
- input.put(Version.V11, files11);
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ input.put(new SchemaVersion("v10"), files10);
+ input.put(new SchemaVersion("v11"), files11);
+
+ List<String> files13 = new ArrayList<>();
+ files13.add("src/test/resources/oxm/business_oxm_v13.xml");
+ files13.add("src/test/resources/oxm/common_oxm_v13.xml");
+ files13.add("src/test/resources/oxm/serviceDesign_oxm_v13.xml");
+ files13.add("src/test/resources/oxm/network_oxm_v13.xml");
+
+ input.put(new SchemaVersion("v10"), files10);
+ input.put(new SchemaVersion("v11"), files11);
+ input.put(new SchemaVersion("v13"), files13);
return input;
}
@Override
- public Map<Version, List<String>> getEdgeFiles() {
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
List<String> files = new ArrayList<>();
files.add("src/test/resources/edgeRules/test.json");
files.add("src/test/resources/edgeRules/test2.json");
files.add("src/test/resources/edgeRules/otherTestRules.json");
- Map<Version, List<String>> input = new EnumMap<>(Version.class);
- input.put(Version.getLatest(), files);
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ input.put(LATEST, files);
List<String> files2 = new ArrayList<>();
files2.add("src/test/resources/edgeRules/test.json");
- input.put(Version.V10, files2);
+ input.put(new SchemaVersion("v10"), files2);
List<String> files3 = new ArrayList<>();
files3.add("src/test/resources/edgeRules/test3.json");
files3.add("src/test/resources/edgeRules/defaultEdgesTest.json");
- input.put(Version.V11, files3);
+ input.put(new SchemaVersion("v11"), files3);
return input;
}
}
+
+
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java
new file mode 100644
index 00000000..2d753efb
--- /dev/null
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/testutils/TestUtilConfigTranslatorforBusiness.java
@@ -0,0 +1,80 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.testutils;
+
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.onap.aai.setup.ConfigTranslator;
+import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
+
+public class TestUtilConfigTranslatorforBusiness extends ConfigTranslator {
+
+ public TestUtilConfigTranslatorforBusiness(SchemaLocationsBean bean, SchemaVersions schemaVersions) {
+ super(bean, schemaVersions);
+ }
+
+ @Override
+ public Map<SchemaVersion, List<String>> getNodeFiles() {
+ List<String> files10 = new ArrayList<>();
+// files10.add("src/test/resources/oxm/test_network_v10.xml");
+// files10.add("src/test/resources/oxm/test_business_v10.xml");
+
+ List<String> files11 = new ArrayList<>();
+// files11.add("src/test/resources/oxm/test_network_v11.xml");
+ files11.add("src/test/resources/oxm/business_v11.xml");
+
+ List<String> files13 = new ArrayList<>();
+ files13.add("src/test/resources/oxm/business_oxm_v13.xml");
+ files13.add("src/test/resources/oxm/common_oxm_v13.xml");
+ files13.add("src/test/resources/oxm/serviceDesign_oxm_v13.xml");
+ files13.add("src/test/resources/oxm/network_oxm_v13.xml");
+
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+// input.put(Version.V10, files10);
+ input.put(new SchemaVersion("v11"), files11);
+ input.put(schemaVersions.getDefaultVersion(), files13);
+ return input;
+ }
+
+ @Override
+ public Map<SchemaVersion, List<String>> getEdgeFiles() {
+ List<String> files = new ArrayList<>();
+ files.add("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json");
+ Map<SchemaVersion, List<String>> input = new TreeMap<>();
+ input.put(schemaVersions.getDefaultVersion(), files);
+
+ List<String> files2 = new ArrayList<>();
+ files2.add("src/test/resources/dbedgerules/test.json");
+// input.put(Version.V10, files2);
+
+ List<String> files3 = new ArrayList<>();
+ files3.add("src/test/resources/dbedgerules/DbEdgeBusinessRules_test.json");
+ input.put(new SchemaVersion("v11"), files3);
+
+ return input;
+ }
+}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java
index 7078ac3a..49bb5986 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/CheckEverythingStrategyTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java
index 69f56007..b70d13d6 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/FailFastStrategyTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java
index f0d13d2e..8c0ac82c 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorRainyDayTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
@@ -28,16 +26,19 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.BadNodeConfigForValidationTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, BadNodeConfigForValidationTest.class, NodeIngestor.class,
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, BadNodeConfigForValidationTest.class, NodeIngestor.class,
CheckEverythingStrategy.class, DefaultVersionValidationModule.class, VersionValidator.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class VersionValidatorRainyDayTest {
@Autowired
@@ -46,8 +47,8 @@ public class VersionValidatorRainyDayTest {
@Test
public void test() {
assertFalse(validator.validate());
- assertTrue(validator.getErrorMsg().contains(Version.V12.toString()));
- assertTrue(validator.getErrorMsg().contains(Version.V11.toString()));
+ assertTrue(validator.getErrorMsg().contains(new SchemaVersion("v12").toString()));
+ assertTrue(validator.getErrorMsg().contains(new SchemaVersion("v11").toString()));
}
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java
index f1950dd6..ff944aad 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/VersionValidatorSunnyDayTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation;
@@ -28,15 +26,25 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.GoodConfigForValidationTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, GoodConfigForValidationTest.class, NodeIngestor.class,
- CheckEverythingStrategy.class, DefaultVersionValidationModule.class, VersionValidator.class})
+@ContextConfiguration(classes = {
+ SchemaLocationsBean.class,
+ SchemaVersions.class,
+ GoodConfigForValidationTest.class,
+ NodeIngestor.class,
+ CheckEverythingStrategy.class,
+ DefaultVersionValidationModule.class,
+ VersionValidator.class
+})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class VersionValidatorSunnyDayTest {
@Autowired
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java
index 86aa61d3..a4613813 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/CousinDefaultingValidationModuleTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -32,8 +30,7 @@ import java.util.Map;
import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.aai.edges.JsonIngestor;
-import org.onap.aai.setup.Version;
-import org.onap.aai.validation.edges.CousinDefaultingValidationModule;
+import org.onap.aai.setup.SchemaVersion;
import com.jayway.jsonpath.DocumentContext;
@@ -43,13 +40,15 @@ public class CousinDefaultingValidationModuleTest {
@BeforeClass
public static void setUpBeforeClass() {
- Map<Version, List<String>> testRules = new HashMap<>();
+ Map<SchemaVersion, List<String>> testRules = new HashMap<>();
List<String> testFiles = new ArrayList<>();
testFiles.add("src/test/resources/edgeRules/cousinDefaultValidationTest.json");
- testRules.put(Version.getLatest(), testFiles);
+
+ SchemaVersion LATEST_VERSION = new SchemaVersion("v14");
+ testRules.put(LATEST_VERSION, testFiles);
JsonIngestor ji = new JsonIngestor();
- ctxs = ji.ingest(testRules).get(Version.getLatest());
+ ctxs = ji.ingest(testRules).get(LATEST_VERSION);
validator = new CousinDefaultingValidationModule();
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java
index 39f2a019..a1b5fa43 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/DefaultEdgeFieldsValidationModuleTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java
index 5a3a4334..2a49e45a 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorRainyDayTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -28,6 +26,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.BadEdgeConfigForValidationTest;
import org.onap.aai.validation.CheckEverythingStrategy;
import org.onap.aai.validation.edges.CousinDefaultingValidationModule;
@@ -39,13 +38,15 @@ import org.onap.aai.validation.edges.UniqueLabelValidationModule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, BadEdgeConfigForValidationTest.class, NodeIngestor.class,
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, BadEdgeConfigForValidationTest.class, NodeIngestor.class,
CheckEverythingStrategy.class, DefaultEdgeFieldsValidationModule.class, UniqueLabelValidationModule.class,
SingleContainmentValidationModule.class, CousinDefaultingValidationModule.class, NodeTypesValidationModule.class,
EdgeRuleValidator.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class EdgeRuleValidatorRainyDayTest {
@Autowired
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java
index 20885894..af782ccf 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/EdgeRuleValidatorSunnyDayTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -28,6 +26,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.GoodConfigForValidationTest;
import org.onap.aai.validation.CheckEverythingStrategy;
import org.onap.aai.validation.edges.CousinDefaultingValidationModule;
@@ -39,13 +38,15 @@ import org.onap.aai.validation.edges.UniqueLabelValidationModule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, GoodConfigForValidationTest.class, NodeIngestor.class,
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, GoodConfigForValidationTest.class, NodeIngestor.class,
CheckEverythingStrategy.class, DefaultEdgeFieldsValidationModule.class, UniqueLabelValidationModule.class,
SingleContainmentValidationModule.class, CousinDefaultingValidationModule.class, NodeTypesValidationModule.class,
EdgeRuleValidator.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class EdgeRuleValidatorSunnyDayTest {
@Autowired
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java
index a7cb9c2e..e3efc23c 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/NodeTypesValidationModuleTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
@@ -31,16 +29,18 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
-import org.onap.aai.setup.Version;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.TestUtilConfigTranslator;
-import org.onap.aai.validation.edges.NodeTypesValidationModule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, TestUtilConfigTranslator.class, NodeIngestor.class, NodeTypesValidationModule.class})
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, TestUtilConfigTranslator.class, NodeIngestor.class, NodeTypesValidationModule.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class NodeTypesValidationModuleTest {
@Autowired
@@ -52,8 +52,8 @@ public class NodeTypesValidationModuleTest {
testPairs.add("bar|foo");
testPairs.add("foo|foo");
testPairs.add("foo|quux");
- assertTrue("".equals(validator.validate(testPairs, Version.V11)));
- assertTrue(validator.validate(testPairs, Version.V10).contains("Invalid node type(s) found: quux")); //bc no quux in v10
+ assertTrue("".equals(validator.validate(testPairs, new SchemaVersion("v11"))));
+ assertTrue(validator.validate(testPairs, new SchemaVersion("v10")).contains("Invalid node type(s) found: quux")); //bc no quux in v10
}
@Test
@@ -62,6 +62,6 @@ public class NodeTypesValidationModuleTest {
testPairs.add("bar|");
testPairs.add("|foo");
testPairs.add("|");
- assertTrue("".equals(validator.validate(testPairs, Version.V11))); //bc empty just ignored
+ assertTrue("".equals(validator.validate(testPairs, new SchemaVersion("v11")))); //bc empty just ignored
}
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java
index caf73cb5..ae7c23d7 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/SingleContainmentValidationModuleTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,40 +16,35 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
import static org.junit.Assert.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.aai.edges.JsonIngestor;
-import org.onap.aai.setup.Version;
-import org.onap.aai.validation.edges.SingleContainmentValidationModule;
+import org.onap.aai.setup.SchemaVersion;
import com.jayway.jsonpath.DocumentContext;
public class SingleContainmentValidationModuleTest {
private static List<DocumentContext> ctxs;
private static SingleContainmentValidationModule validator;
+ public static final SchemaVersion LATEST = new SchemaVersion("v14");
@BeforeClass
public static void setUpBeforeClass() {
- Map<Version, List<String>> testRules = new HashMap<>();
+ Map<SchemaVersion, List<String>> testRules = new TreeMap<>();
List<String> testFiles = new ArrayList<>();
testFiles.add("src/test/resources/edgeRules/containsValidationTest.json");
- testRules.put(Version.getLatest(), testFiles);
+ testRules.put(LATEST, testFiles);
JsonIngestor ji = new JsonIngestor();
- ctxs = ji.ingest(testRules).get(Version.getLatest());
+ ctxs = ji.ingest(testRules).get(LATEST);
validator = new SingleContainmentValidationModule();
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java
index 7f51a6fb..3b0ab034 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/edges/UniqueLabelValidationModuleTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,41 +16,36 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.edges;
import static org.junit.Assert.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.aai.edges.JsonIngestor;
-import org.onap.aai.setup.Version;
-import org.onap.aai.validation.edges.UniqueLabelValidationModule;
+import org.onap.aai.setup.SchemaVersion;
import com.jayway.jsonpath.DocumentContext;
public class UniqueLabelValidationModuleTest {
private static List<DocumentContext> ctxs;
private static UniqueLabelValidationModule validator;
-
+ public static final SchemaVersion LATEST = new SchemaVersion("v14");
+
@BeforeClass
public static void setup() {
- Map<Version, List<String>> testRules = new HashMap<>();
+ Map<SchemaVersion, List<String>> testRules = new TreeMap<>();
List<String> testFiles = new ArrayList<>();
testFiles.add("src/test/resources/edgeRules/labelValidationTest1.json");
testFiles.add("src/test/resources/edgeRules/labelValidationTest2.json");
- testRules.put(Version.getLatest(), testFiles);
+ testRules.put(LATEST, testFiles);
JsonIngestor ji = new JsonIngestor();
- ctxs = ji.ingest(testRules).get(Version.getLatest());
+ ctxs = ji.ingest(testRules).get(LATEST);
validator = new UniqueLabelValidationModule();
}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java
index d1a60dd8..a026504f 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorRainyDayTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.nodes;
@@ -28,6 +26,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.BadNodeConfigForValidationTest;
import org.onap.aai.validation.CheckEverythingStrategy;
import org.onap.aai.validation.nodes.DefaultDuplicateNodeDefinitionValidationModule;
@@ -35,11 +34,13 @@ import org.onap.aai.validation.nodes.NodeValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, BadNodeConfigForValidationTest.class, NodeIngestor.class,
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, BadNodeConfigForValidationTest.class, NodeIngestor.class,
CheckEverythingStrategy.class, DefaultDuplicateNodeDefinitionValidationModule.class, NodeValidator.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class NodeValidatorRainyDayTest {
@Autowired
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java
new file mode 100644
index 00000000..83bf3748
--- /dev/null
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSchemaIncompleteTest.java
@@ -0,0 +1,88 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.aai.validation.nodes;
+
+import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.onap.aai.nodes.NodeIngestor;
+import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersion;
+import org.onap.aai.setup.SchemaVersions;
+import org.onap.aai.testutils.SchemaIncompleteTranslator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.w3c.dom.Document;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+@Ignore
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, SchemaIncompleteTranslator.class, NodeIngestor.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
+//@SpringBootTest
+public class NodeValidatorSchemaIncompleteTest {
+ @Autowired
+ NodeIngestor ni;
+
+ //set thrown.expect to whatever a specific test needs
+ //this establishes a default of expecting no exceptions to be thrown
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ //Throws a NullPointerException because a JavaType is referenced, but not defined
+ @Test
+ public void testIncompleteCombinedSchema() throws TransformerException, IOException, IllegalStateException {
+ thrown.expect(NullPointerException.class);
+
+
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ printDocument(ni.getSchema(new SchemaVersion("v12")),buffer);
+ }
+
+ public static void printDocument(Document doc, OutputStream out) throws IOException, TransformerException {
+ TransformerFactory tf = TransformerFactory.newInstance();
+ Transformer transformer = tf.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
+
+ transformer.transform(new DOMSource(doc),
+ new StreamResult(new OutputStreamWriter(out, "UTF-8")));
+ }
+
+}
diff --git a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java
index 6233dfe1..6d0a6a50 100644
--- a/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java
+++ b/aai-schema-ingest/src/test/java/org/onap/aai/validation/nodes/NodeValidatorSunnyDayTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* org.onap.aai
* ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
* ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*/
package org.onap.aai.validation.nodes;
@@ -28,6 +26,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.aai.nodes.NodeIngestor;
import org.onap.aai.setup.SchemaLocationsBean;
+import org.onap.aai.setup.SchemaVersions;
import org.onap.aai.testutils.GoodConfigForValidationTest;
import org.onap.aai.validation.CheckEverythingStrategy;
import org.onap.aai.validation.nodes.DefaultDuplicateNodeDefinitionValidationModule;
@@ -35,11 +34,13 @@ import org.onap.aai.validation.nodes.NodeValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = {SchemaLocationsBean.class, GoodConfigForValidationTest.class, NodeIngestor.class,
+@ContextConfiguration(classes = {SchemaLocationsBean.class, SchemaVersions.class, GoodConfigForValidationTest.class, NodeIngestor.class,
CheckEverythingStrategy.class, DefaultDuplicateNodeDefinitionValidationModule.class, NodeValidator.class})
+@TestPropertySource(properties = { "schema.ingest.file = src/test/resources/forWiringTests/schema-ingest-wiring-test.properties" })
@SpringBootTest
public class NodeValidatorSunnyDayTest {
@Autowired
diff --git a/aai-schema-ingest/src/test/resources/edgeRules/test3.json b/aai-schema-ingest/src/test/resources/edgeRules/test3.json
index 916efdcc..e34e79fe 100644
--- a/aai-schema-ingest/src/test/resources/edgeRules/test3.json
+++ b/aai-schema-ingest/src/test/resources/edgeRules/test3.json
@@ -59,6 +59,18 @@
"prevent-delete": "NONE",
"default": "true",
"description":""
+ },
+ {
+ "from": "bloop",
+ "to": "bloop",
+ "label": "links",
+ "direction": "OUT",
+ "multiplicity": "ONE2ONE",
+ "contains-other-v": "IN",
+ "delete-other-v": "NONE",
+ "prevent-delete": "NONE",
+ "default": "true",
+ "description": "for testing same type direction flip requirement"
}
]
} \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/aai_oxm_v13.xml b/aai-schema-ingest/src/test/resources/forWiringTests/aai_oxm_v13.xml
new file mode 100644
index 00000000..ec814118
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/forWiringTests/aai_oxm_v13.xml
@@ -0,0 +1,4630 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v13" xml-mapping-metadata-complete="true">
+ <xml-schema element-form-default="QUALIFIED">
+ <xml-ns namespace-uri="http://org.onap.aai.inventory/v13"/>
+ </xml-schema>
+ <java-types>
+ <java-type name="AllottedResources">
+ <xml-properties>
+ <xml-property name="description" value="This object is used to store slices of services being offered"/>
+ </xml-properties>
+ <xml-root-element name="allotted-resources"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="allottedResource" name="allotted-resource" type="inventory.aai.onap.org.v13.AllottedResource"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="AllottedResource">
+ <xml-root-element name="allotted-resource"/>
+ <java-attributes>
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Allotted Resource id UUID assigned to this instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="description" name="description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The descriptive information assigned to this allotted resource instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Link back to more information in the controller"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="type" name="type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Generic description of the type of allotted resource."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="role" name="role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role in the network that this resource will be providing."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.onap.org.v13.TunnelXconnects"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Represents a slice or partial piece of a resource that gets separately allotted"/>
+ <xml-property name="nameProps" value="description"/>
+ <xml-property name="uniqueProps" value="id"/>
+ <xml-property name="indexedProps" value="id,model-invariant-id,model-version-id,type,role"/>
+ <xml-property name="dependentOn" value="service-instance"/>
+ <xml-property name="container" value="allotted-resources"/>
+ <!-- <xml-property name="namespace" value="network" /> -->
+ </xml-properties>
+ </java-type>
+ <java-type name="Business">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for business related constructs"/>
+ </xml-properties>
+ <xml-root-element name="business"/>
+ <java-attributes>
+ <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.onap.org.v13.Connectors"/>
+ <xml-element java-attribute="customers" name="customers" type="inventory.aai.onap.org.v13.Customers"/>
+ <xml-element java-attribute="linesOfBusiness" name="lines-of-business" type="inventory.aai.onap.org.v13.LinesOfBusiness"/>
+ <xml-element java-attribute="owningEntities" name="owning-entities" type="inventory.aai.onap.org.v13.OwningEntities"/>
+ <xml-element java-attribute="platforms" name="platforms" type="inventory.aai.onap.org.v13.Platforms"/>
+ <xml-element java-attribute="projects" name="projects" type="inventory.aai.onap.org.v13.Projects"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Connectors">
+ <xml-properties>
+ <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets"/>
+ </xml-properties>
+ <xml-root-element name="connectors"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.onap.org.v13.Connector"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Connector">
+ <xml-root-element name="connector"/>
+ <java-attributes>
+ <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of resource instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets"/>
+ <xml-property name="indexedProps" value="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version"/>
+ <xml-property name="container" value="connectors"/>
+ <xml-property name="namespace" value="business"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Customers">
+ <xml-properties>
+ <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information."/>
+ </xml-properties>
+ <xml-root-element name="customers"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.onap.org.v13.Customer"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Customer">
+ <xml-root-element name="customer"/>
+ <java-attributes>
+ <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers."/>
+ <xml-property name="defaultValue" value="CUST"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.onap.org.v13.ServiceSubscriptions"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="customer identifiers to provide linkage back to BSS information."/>
+ <xml-property name="nameProps" value="subscriber-name"/>
+ <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type"/>
+ <xml-property name="searchable" value="global-customer-id,subscriber-name"/>
+ <xml-property name="uniqueProps" value="global-customer-id"/>
+ <xml-property name="container" value="customers"/>
+ <xml-property name="namespace" value="business"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="LinesOfBusiness">
+ <xml-properties>
+ <xml-property name="description" value="Collection of lines-of-business"/>
+ </xml-properties>
+ <xml-root-element name="lines-of-business"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lineOfBusiness" name="line-of-business" type="inventory.aai.onap.org.v13.LineOfBusiness"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="LineOfBusiness">
+ <xml-root-element name="line-of-business"/>
+ <java-attributes>
+ <xml-element java-attribute="lineOfBusinessName" name="line-of-business-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the line-of-business (product)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes a line-of-business"/>
+ <xml-property name="indexedProps" value="line-of-business-name"/>
+ <xml-property name="uniqueProps" value="line-of-business-name"/>
+ <xml-property name="container" value="lines-of-business"/>
+ <xml-property name="namespace" value="business"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="OwningEntities">
+ <xml-properties>
+ <xml-property name="description" value="Collection of owning-entities"/>
+ </xml-properties>
+ <xml-root-element name="owning-entities"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="owningEntity" name="owning-entity" type="inventory.aai.onap.org.v13.OwningEntity"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="OwningEntity">
+ <xml-root-element name="owning-entity"/>
+ <java-attributes>
+ <xml-element java-attribute="owningEntityId" name="owning-entity-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID of an owning entity"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="owningEntityName" name="owning-entity-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Owning entity name"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes an owning-entity"/>
+ <xml-property name="indexedProps" value="owning-entity-id,owning-entity-name"/>
+ <xml-property name="searchable" value="owning-entity-id"/>
+ <xml-property name="uniqueProps" value="owning-entity-id,owning-entity-name"/>
+ <xml-property name="container" value="owning-entities"/>
+ <xml-property name="namespace" value="business"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Platforms">
+ <xml-properties>
+ <xml-property name="description" value="Collection of platforms"/>
+ </xml-properties>
+ <xml-root-element name="platforms"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="platform" name="platform" type="inventory.aai.onap.org.v13.Platform"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Platform">
+ <xml-root-element name="platform"/>
+ <java-attributes>
+ <xml-element java-attribute="platformName" name="platform-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the platform"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes a platform"/>
+ <xml-property name="indexedProps" value="platform-name"/>
+ <xml-property name="uniqueProps" value="platform-name"/>
+ <xml-property name="container" value="platforms"/>
+ <xml-property name="namespace" value="business"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Projects">
+ <xml-properties>
+ <xml-property name="description" value="Collection of projects"/>
+ </xml-properties>
+ <xml-root-element name="projects"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="project" name="project" type="inventory.aai.onap.org.v13.Project"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Project">
+ <xml-root-element name="project"/>
+ <java-attributes>
+ <xml-element java-attribute="projectName" name="project-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the project deploying a service"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes the project"/>
+ <xml-property name="indexedProps" value="project-name"/>
+ <xml-property name="uniqueProps" value="project-name"/>
+ <xml-property name="container" value="projects"/>
+ <xml-property name="namespace" value="business"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceSubscriptions">
+ <xml-properties>
+ <xml-property name="description" value="Collection of objects that group service instances."/>
+ </xml-properties>
+ <xml-root-element name="service-subscriptions"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.onap.org.v13.ServiceSubscription"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceSubscription">
+ <xml-root-element name="service-subscription"/>
+ <java-attributes>
+ <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This property will be deleted from A&amp;AI in the near future. Only stop gap solution."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.onap.org.v13.ServiceInstances">
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Object that group service instances."/>
+ <xml-property name="indexedProps" value="service-type"/>
+ <xml-property name="dependentOn" value="customer"/>
+ <xml-property name="container" value="service-subscriptions"/>
+ <xml-property name="crossEntityReference" value="service-instance,service-type"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceInstances">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service instances"/>
+ </xml-properties>
+ <xml-root-element name="service-instances"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.onap.org.v13.ServiceInstance"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceInstance">
+ <xml-root-element name="service-instance"/>
+ <java-attributes>
+ <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Uniquely identifies this instance of a service"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store a name assigned to the service-instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceType" name="service-type" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of service."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceRole" name="service-role" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing the service role."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="environmentContext" name="environment-context" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store the environment context assigned to the service-instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="workloadContext" name="workload-context" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store the workload context assigned to the service-instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the total bandwidth to be used for this service."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL customers will use to access the vHN Portal."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="An identifier that customers assign to the location where this service is being used."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this service."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata"/>
+ <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.onap.org.v13.AllottedResources"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Instance of a service"/>
+ <xml-property name="indexedProps" value="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context"/>
+ <xml-property name="nameProps" value="service-instance-name"/>
+ <xml-property name="searchable" value="service-instance-id,service-instance-name"/>
+ <xml-property name="uniqueProps" value="service-instance-id"/>
+ <xml-property name="dependentOn" value="service-subscription"/>
+ <xml-property name="container" value="service-instances"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="TunnelXconnects">
+ <xml-properties>
+ <xml-property name="description" value="This object is used to store the specific tunnel cross connect aspects of an allotted resource"/>
+ </xml-properties>
+ <xml-root-element name="tunnel-xconnects"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="tunnelXconnect" name="tunnel-xconnect" type="inventory.aai.onap.org.v13.TunnelXconnect"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="TunnelXconnect">
+ <xml-root-element name="tunnel-xconnect"/>
+ <java-attributes>
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Allotted Resource id UUID assigned to this instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN uplink bandwidth for WAN1"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN downlink bandwidth for WAN1"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN uplink bandwidth for WAN2"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN downlink bandwidth for WAN2"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted"/>
+ <xml-property name="uniqueProps" value="id"/>
+ <xml-property name="indexedProps" value="id"/>
+ <xml-property name="dependentOn" value="allotted-resource"/>
+ <xml-property name="container" value="tunnel-xconnects"/>
+ <!-- <xml-property name="namespace" value="network" /> -->
+ </xml-properties>
+ </java-type>
+ <java-type name="RelationshipList">
+ <xml-root-element name="relationship-list"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.onap.org.v13.Relationship"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Relationship">
+ <xml-root-element name="relationship"/>
+ <java-attributes>
+ <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="A keyword provided by A&amp;AI to indicate type of node."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipLabel" name="relationship-label" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The edge label for this relationship."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to the object in A&amp;AI."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.onap.org.v13.RelationshipData"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.onap.org.v13.RelatedToProperty"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RelatedToProperty">
+ <xml-root-element name="related-to-property"/>
+ <java-attributes>
+ <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Key part of a key/value pair"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Value part of a key/value pair"/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="RelationshipData">
+ <xml-root-element name="relationship-data"/>
+ <java-attributes>
+ <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="A keyword provided by A&amp;AI to indicate an attribute."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Value of the attribute."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="Metadata">
+ <xml-properties>
+ <xml-property name="description" value="Collection of metadatum (key/value pairs)"/>
+ </xml-properties>
+ <xml-root-element name="metadata"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.onap.org.v13.Metadatum"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Metadatum">
+ <xml-root-element name="metadatum"/>
+ <java-attributes>
+ <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true"/>
+ <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Key/value pairs"/>
+ <xml-property name="indexedProps" value="metaname"/>
+ <xml-property name="dependentOn" value="tenant,image,service-instance,connector,model"/>
+ <xml-property name="container" value="metadata"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Collections">
+ <xml-root-element name="collections"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="collection" name="collection" type="inventory.aai.onap.org.v13.Collection"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Collection">
+ <xml-root-element name="collection"/>
+ <java-attributes>
+ <xml-element java-attribute="collectionId" name="collection-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Collection Object UUID"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ASDC model id for this resource or service model"/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Model Version"/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionName" name="collection-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="collection name"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionType" name="collection-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collection type"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionRole" name="collection-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collection Role"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionFunction" name="collection-function" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collection function"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="orchestration status"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionCustomizationId" name="collection-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the id of all the configuration used to customize the resource for the service"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="description" value="represents the collection resource in the TOSCA model"/>
+ <xml-property name="uniqueProps" value="collection-id"/>
+ <xml-property name="indexedProps" value="collection-id,model-invariant-id,model-version-id"/>
+ <xml-property name="container" value="collections"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="ConstrainedElementSets">
+ <xml-root-element name="constrained-element-sets"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.onap.org.v13.ConstrainedElementSet"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ConstrainedElementSet">
+ <xml-properties>
+ <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements."/>
+ <xml-property name="uniqueProps" value="constrained-element-set-uuid"/>
+ <xml-property name="indexedProps" value="constrained-element-set-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="constrained-element-sets"/>
+ </xml-properties>
+ <xml-root-element name="constrained-element-set"/>
+ <java-attributes>
+ <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.onap.org.v13.ElementChoiceSets"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ElementChoiceSets">
+ <xml-root-element name="element-choice-sets"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.onap.org.v13.ElementChoiceSet"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ElementChoiceSet">
+ <xml-properties>
+ <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements."/>
+ <xml-property name="uniqueProps" value="element-choice-set-uuid"/>
+ <xml-property name="indexedProps" value="element-choice-set-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="element-choice-sets"/>
+ </xml-properties>
+ <xml-root-element name="element-choice-set"/>
+ <java-attributes>
+ <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v13.ModelElements"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="NamedQueries">
+ <xml-root-element name="named-queries"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.onap.org.v13.NamedQuery"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="NamedQuery">
+ <xml-properties>
+ <xml-property name="description" value="TBD"/>
+ <xml-property name="nameProps" value="named-query-name"/>
+ <xml-property name="uniqueProps" value="named-query-uuid"/>
+ <xml-property name="indexedProps" value="named-query-uuid,named-query-name"/>
+ <xml-property name="container" value="named-queries"/>
+ <xml-property name="namespace" value="service-design-and-creation"/>
+ </xml-properties>
+ <xml-root-element name="named-query"/>
+ <java-attributes>
+ <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true"/>
+ <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String">
+ <xml-element-wrapper name="required-input-params"/>
+ </xml-element>
+ <xml-element java-attribute="description" name="description" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.onap.org.v13.NamedQueryElements"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="NamedQueryElements">
+ <xml-root-element name="named-query-elements"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.onap.org.v13.NamedQueryElement"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="NamedQueryElement">
+ <xml-properties>
+ <xml-property name="description" value="TBD"/>
+ <xml-property name="uniqueProps" value="named-query-element-uuid"/>
+ <xml-property name="indexedProps" value="named-query-element-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="named-query-elements"/>
+ </xml-properties>
+ <xml-root-element name="named-query-element"/>
+ <java-attributes>
+ <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String"/>
+ <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String"/>
+ <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.onap.org.v13.NamedQueryElements"/>
+ <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.onap.org.v13.RelatedLookups"/>
+ <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.onap.org.v13.PropertyConstraints"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RelatedLookups">
+ <xml-root-element name="related-lookups"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.onap.org.v13.RelatedLookup"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RelatedLookup">
+ <xml-properties>
+ <xml-property name="description" value="TBD"/>
+ <xml-property name="uniqueProps" value="related-lookup-uuid"/>
+ <xml-property name="indexedProps" value="related-lookup-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="related-lookups"/>
+ </xml-properties>
+ <xml-root-element name="related-lookup"/>
+ <java-attributes>
+ <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="PropertyConstraints">
+ <xml-root-element name="property-constraints"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.onap.org.v13.PropertyConstraint"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="PropertyConstraint">
+ <xml-properties>
+ <xml-property name="description" value="TBD"/>
+ <xml-property name="uniqueProps" value="property-constraint-uuid"/>
+ <xml-property name="indexedProps" value="property-constraint-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="property-constraints"/>
+ </xml-properties>
+ <xml-root-element name="property-constraint"/>
+ <java-attributes>
+ <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="propertyName" name="property-name" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="propertyValue" name="property-value" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceDesignAndCreation">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for objects managed by ASDC"/>
+ </xml-properties>
+ <xml-root-element name="service-design-and-creation"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfImages" name="vnf-images" type="inventory.aai.onap.org.v13.VnfImages"/>
+ <xml-element java-attribute="services" name="services" type="inventory.aai.onap.org.v13.Services"/>
+ <xml-element java-attribute="serviceCapabilities" name="service-capabilities" type="inventory.aai.onap.org.v13.ServiceCapabilities"/>
+ <xml-element java-attribute="models" name="models" type="inventory.aai.onap.org.v13.Models"/>
+ <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.onap.org.v13.NamedQueries"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Services">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC."/>
+ </xml-properties>
+ <xml-root-element name="services"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.onap.org.v13.Service"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Service">
+ <xml-root-element name="service"/>
+ <java-attributes>
+ <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Description of the service"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="service version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services."/>
+ <xml-property name="indexedProps" value="service-description,service-id"/>
+ <xml-property name="container" value="services"/>
+ <xml-property name="namespace" value="service-design-and-creation"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceCapabilities">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service capabilities."/>
+ </xml-properties>
+ <xml-root-element name="service-capabilities"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceCapability" name="service-capability" type="inventory.aai.onap.org.v13.ServiceCapability"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceCapability">
+ <xml-root-element name="service-capability"/>
+ <java-attributes>
+ <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this."/>
+ <xml-property name="indexedProps" value="service-type,vnf-type"/>
+ <xml-property name="container" value="service-capabilities"/>
+ <xml-property name="namespace" value="service-design-and-creation"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VnfImages">
+ <xml-properties>
+ <xml-property name="description" value="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge."/>
+ </xml-properties>
+ <xml-root-element name="vnf-images"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vnfImage" name="vnf-image" type="inventory.aai.onap.org.v13.VnfImage"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="VnfImage">
+ <xml-root-element name="vnf-image"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfImageUuid" name="vnf-image-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of this asset"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="application" name="application" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The application that the image instantiates."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="applicationVendor" name="application-vendor" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The vendor of the application."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The version of the application."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge."/>
+ <xml-property name="indexedProps" value="application,vnf-image-uuid,application-vendor,application-version"/>
+ <xml-property name="uniqueProps" value="vnf-image-uuid"/>
+ <xml-property name="container" value="vnf-images"/>
+ <xml-property name="namespace" value="service-design-and-creation"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Models">
+ <xml-properties>
+ <xml-property name="description" value="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models"/>
+ </xml-properties>
+ <xml-root-element name="models"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.onap.org.v13.Model"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Model">
+ <xml-root-element name="model"/>
+ <xml-properties>
+ <xml-property name="description" value="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version"/>
+ <xml-property name="nameProps" value="model-type"/>
+ <xml-property name="indexedProps" value="model-invariant-id,model-type"/>
+ <xml-property name="uniqueProps" value="model-invariant-id"/>
+ <xml-property name="container" value="models"/>
+ <xml-property name="namespace" value="service-design-and-creation"/>
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.onap.org.v13.ModelVers"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelVers">
+ <xml-root-element name="model-vers"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="modelVer" name="model-ver" type="inventory.aai.onap.org.v13.ModelVer"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelVer">
+ <xml-root-element name="model-ver"/>
+ <xml-properties>
+ <xml-property name="description" value="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models"/>
+ <xml-property name="nameProps" value="model-name"/>
+ <xml-property name="indexedProps" value="model-version-id,model-name,model-version,distribution-status"/>
+ <xml-property name="uniqueProps" value="model-version-id"/>
+ <xml-property name="container" value="model-vers"/>
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the model, which can change from version to version."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="distributionStatus" name="distribution-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Distribution Status"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Description"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v13.ModelElements"/>
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelElements">
+ <xml-root-element name="model-elements"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.onap.org.v13.ModelElement"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelElement">
+ <xml-properties>
+ <xml-property name="description" value="Defines how other models combine to make up a higher-level model."/>
+ <xml-property name="uniqueProps" value="model-element-uuid"/>
+ <xml-property name="indexedProps" value="model-element-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="model-elements"/>
+ </xml-properties>
+ <xml-root-element name="model-element"/>
+ <java-attributes>
+ <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="How many of this type of element are required/allowed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-points" type="java.lang.String">
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v13.ModelElements">
+ <xml-properties>
+ <xml-property name="description" value="Defines how other models combine to make up a higher-level model"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.onap.org.v13.ModelConstraints">
+ <xml-properties>
+ <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelConstraints">
+ <xml-root-element name="model-constraints"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.onap.org.v13.ModelConstraint"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelConstraint">
+ <xml-properties>
+ <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements."/>
+ <xml-property name="uniqueProps" value="model-constraint-uuid"/>
+ <xml-property name="indexedProps" value="model-constraint-uuid"/>
+ <xml-property name="allowDirectRead" value="true"/>
+ <xml-property name="allowDirectWrite" value="false"/>
+ <xml-property name="container" value="model-constraints"/>
+ </xml-properties>
+ <xml-root-element name="model-constraint"/>
+ <java-attributes>
+ <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String"/>
+ <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.onap.org.v13.ConstrainedElementSets"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="LInterfaces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of logical interfaces."/>
+ </xml-properties>
+ <xml-root-element name="l-interfaces"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.onap.org.v13.LInterface"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="LInterface">
+ <xml-root-element name="l-interface"/>
+ <java-attributes>
+ <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name given to the interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID of interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="MAC address for the interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkName" name="network-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the network"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Human friendly text regarding this interface."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isPortMirrored" name="is-port-mirrored" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not port is a mirrored."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV]."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isIpUnnumbered" name="is-ip-unnumbered" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="allowedAddressPairs" name="allowed-address-pairs" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Freeform field for storing an ip address, list of ip addresses or a subnet block."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.onap.org.v13.Vlans"/>
+ <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.onap.org.v13.SriovVfs"/>
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv4AddressList"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv6AddressList"/>
+ <xml-element java-attribute="adminStatus" name="admin-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Logical interfaces, e.g., a vnic."/>
+ <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name"/>
+ <xml-property name="dependentOn" value="generic-vnf,newvce,p-interface,vserver,lag-interface"/>
+ <xml-property name="container" value="l-interfaces"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="SriovVfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of SR-IOV Virtual Functions."/>
+ </xml-properties>
+ <xml-root-element name="sriov-vfs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sriovVf" name="sriov-vf" type="inventory.aai.onap.org.v13.SriovVf"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="SriovVf">
+ <xml-root-element name="sriov-vf"/>
+ <java-attributes>
+ <xml-element java-attribute="pciId" name="pci-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="PCI ID used to identify the sriov-vf"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfVlanFilter" name="vf-vlan-filter" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfMacFilter" name="vf-mac-filter" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfVlanStrip" name="vf-vlan-strip" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfVlanAntiSpoofCheck" name="vf-vlan-anti-spoof-check" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfMacAntiSpoofCheck" name="vf-mac-anti-spoof-check" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfMirrors" name="vf-mirrors" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfBroadcastAllow" name="vf-broadcast-allow" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfUnknownMulticastAllow" name="vf-unknown-multicast-allow" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfUnknownUnicastAllow" name="vf-unknown-unicast-allow" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfInsertStag" name="vf-insert-stag" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, instructs to insert outer tag after traffic comes out of VM."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfLinkStatus" name="vf-link-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This option is used to set the link status. Valid values as of 1607 are on, off, and auto."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of the interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="SR-IOV Virtual Function (not to be confused with virtual network function)"/>
+ <xml-property name="indexedProps" value="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id"/>
+ <xml-property name="dependentOn" value="l-interface"/>
+ <xml-property name="container" value="sriov-vfs"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="L3InterfaceIpv4AddressList">
+ <xml-root-element name="l3-interface-ipv4-address-list"/>
+ <java-attributes>
+ <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="IP address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Prefix length, 32 for single address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Inner VLAN tag"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Outer VLAN tag"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="Indicator of fixed or floating address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of the interface that address belongs to"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron id of subnet that address belongs to"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="IPv4 Address Range"/>
+ <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id"/>
+ <xml-property name="dependentOn" value="vlan,l-interface,vnfc"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Vlans">
+ <xml-root-element name="vlans"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.onap.org.v13.Vlan"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Vlan">
+ <xml-root-element name="vlan"/>
+ <java-attributes>
+ <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="String that identifies the interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Inner VLAN tag"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Outer VLAN tag"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used to describe (the service associated with) the vlan"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnKey" name="vpn-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV]."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isIpUnnumbered" name="is-ip-unnumbered" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv4AddressList"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv6AddressList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Definition of vlan"/>
+ <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-key"/>
+ <xml-property name="dependentOn" value="l-interface"/>
+ <xml-property name="container" value="vlans"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="L3InterfaceIpv6AddressList">
+ <xml-root-element name="l3-interface-ipv6-address-list"/>
+ <java-attributes>
+ <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="IP address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Prefix length, 128 for single address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Inner VLAN tag"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Outer VLAN tag"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="Indicator of fixed or floating address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of the interface that address belongs to"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron id of subnet that address belongs to"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="IPv6 Address Range"/>
+ <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id"/>
+ <xml-property name="dependentOn" value="vlan,l-interface,vnfc"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="PInterfaces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of physical interfaces."/>
+ </xml-properties>
+ <xml-root-element name="p-interfaces"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.onap.org.v13.PInterface"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="PInterface">
+ <xml-root-element name="p-interface"/>
+ <java-attributes>
+ <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name that identifies the physical interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Nature of the services and connectivity on this port."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CLEI or other specification for p-interface hardware."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role specification for p-interface hardware."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the physical properties of the interface."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="inventory status"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="sriovPfs" name="sriov-pfs" type="inventory.aai.onap.org.v13.SriovPfs"/>
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Physical interface (e.g., nic)"/>
+ <xml-property name="indexedProps" value="interface-name,prov-status"/>
+ <xml-property name="nameProps" value="prov-status"/>
+ <xml-property name="dependentOn" value="vpls-pe,pserver,pnf"/>
+ <xml-property name="container" value="p-interfaces"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="LagInterfaces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of link aggregate interfaces."/>
+ </xml-properties>
+ <xml-root-element name="lag-interfaces"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.onap.org.v13.LagInterface"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="LagInterface">
+ <xml-root-element name="lag-interface"/>
+ <java-attributes>
+ <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name that identifies the link aggregate interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Human friendly text regarding this interface."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID of interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Link aggregate interface"/>
+ <xml-property name="indexedProps" value="interface-name,interface-id,interface-role"/>
+ <xml-property name="dependentOn" value="generic-vnf,pserver,vpls-pe,pnf"/>
+ <xml-property name="container" value="lag-interfaces"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Network">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for network inventory resources."/>
+ </xml-properties>
+ <xml-root-element name="network"/>
+ <java-attributes>
+ <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.onap.org.v13.LogicalLinks"/>
+ <xml-element java-attribute="sitePairSets" name="site-pair-sets" type="inventory.aai.onap.org.v13.SitePairSets"/>
+ <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.onap.org.v13.VpnBindings"/>
+ <xml-element java-attribute="vplsPes" name="vpls-pes" type="inventory.aai.onap.org.v13.VplsPes"/>
+ <xml-element java-attribute="multicastConfigurations" name="multicast-configurations" type="inventory.aai.onap.org.v13.MulticastConfigurations"/>
+ <xml-element java-attribute="vces" name="vces" type="inventory.aai.onap.org.v13.Vces"/>
+ <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.onap.org.v13.Vnfcs"/>
+ <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.onap.org.v13.L3Networks"/>
+ <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.onap.org.v13.NetworkPolicies"/>
+ <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.onap.org.v13.GenericVnfs"/>
+ <xml-element java-attribute="lagLinks" name="lag-links" type="inventory.aai.onap.org.v13.LagLinks"/>
+ <xml-element java-attribute="newvces" name="newvces" type="inventory.aai.onap.org.v13.Newvces"/>
+ <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.onap.org.v13.Pnfs"/>
+ <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.onap.org.v13.PhysicalLinks"/>
+ <xml-element java-attribute="ipsecConfigurations" name="ipsec-configurations" type="inventory.aai.onap.org.v13.IpsecConfigurations"/>
+ <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.onap.org.v13.RouteTableReferences"/>
+ <xml-element java-attribute="instanceGroups" name="instance-groups" type="inventory.aai.onap.org.v13.InstanceGroups"/>
+ <xml-element java-attribute="zones" name="zones" type="inventory.aai.onap.org.v13.Zones"/>
+ <xml-element java-attribute="configurations" name="configurations" type="inventory.aai.onap.org.v13.Configurations"/>
+ <xml-element java-attribute="forwardingPaths" name="forwarding-paths" type="inventory.aai.onap.org.v13.ForwardingPaths"/>
+ <xml-element java-attribute="collections" name="collections" type="inventory.aai.onap.org.v13.Collections"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Configurations">
+ <xml-properties>
+ <xml-property name="description" value="Collection of configurations"/>
+ </xml-properties>
+ <xml-root-element name="configurations"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="configuration" name="configuration" type="inventory.aai.onap.org.v13.Configuration"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Configuration">
+ <xml-root-element name="configuration"/>
+ <java-attributes>
+ <xml-element java-attribute="configurationId" name="configuration-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID assigned to configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationName" name="configuration-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationType" name="configuration-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="port-mirroring-configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationSubType" name="configuration-sub-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="vprobe, pprobe."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of the configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationSelflink" name="configuration-selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details from SDN-GC."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="id of the configuration used to customize the resource"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tunnelBandwidth" name="tunnel-bandwidth" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="DHV Site Effective Bandwidth"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vendorAllowedMaxBandwidth" name="vendor-allowed-max-bandwidth" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Velocloud Nominal Throughput - VNT"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata"/>
+ <xml-element java-attribute="forwarderEvcs" name="forwarder-evcs" type="inventory.aai.onap.org.v13.ForwarderEvcs"/>
+ <xml-element java-attribute="evcs" name="evcs" type="inventory.aai.onap.org.v13.Evcs"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Generic configuration object."/>
+ <xml-property name="indexedProps" value="configuration-id,model-invariant-id,model-version-id"/>
+ <xml-property name="uniqueProps" value="configuration-id"/>
+ <xml-property name="container" value="configurations"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="LogicalLinks">
+ <xml-properties>
+ <xml-property name="description" value="Collection of logical connections"/>
+ </xml-properties>
+ <xml-root-element name="logical-links"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.onap.org.v13.LogicalLink"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="LogicalLink">
+ <xml-root-element name="logical-link"/>
+ <java-attributes>
+ <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of logical link, e.g., evc"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4, v6, or ds for dual stack (should be att-ip-version)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="For example, static or BGP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indication of operational status of the logical link."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indication of the network use of the logical link."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkId" name="link-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the logical-link, SDNC generates this."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Circuit id"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="purpose" name="purpose" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Reason for this entity, role it is playing"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points"/>
+ <xml-property name="indexedProps" value="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose"/>
+ <xml-property name="uniqueProps" value="link-id"/>
+ <xml-property name="container" value="logical-links"/>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="searchable" value="link-name"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="SitePairSets">
+ <xml-properties>
+ <xml-property name="description" value="Collection of sets of instances for probes related to generic-vnf"/>
+ </xml-properties>
+ <xml-root-element name="site-pair-sets"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sitePairSet" name="site-pair-set" type="inventory.aai.onap.org.v13.SitePairSet"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="SitePairSet">
+ <xml-root-element name="site-pair-set"/>
+ <java-attributes>
+ <xml-element java-attribute="sitePairSetId" name="site-pair-set-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of site pair set."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routingInstances" name="routing-instances" type="inventory.aai.onap.org.v13.RoutingInstances"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Set of instances for probes used to measure service level agreements"/>
+ <xml-property name="indexedProps" value="site-pair-set-id"/>
+ <xml-property name="uniqueProps" value="site-pair-set-id"/>
+ <xml-property name="container" value="site-pair-sets"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="RoutingInstances">
+ <xml-properties>
+ <xml-property name="description" value="set of probes related to generic-vnf routing instance"/>
+ </xml-properties>
+ <xml-root-element name="routing-instances"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="routingInstance" name="routing-instance" type="inventory.aai.onap.org.v13.RoutingInstance"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RoutingInstance">
+ <xml-root-element name="routing-instance"/>
+ <java-attributes>
+ <xml-element java-attribute="routingInstanceId" name="routing-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of routing instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="rpmOwner" name="rpm-owner" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="rpm owner"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sitePairs" name="site-pairs" type="inventory.aai.onap.org.v13.SitePairs"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="routing-instance-id"/>
+ <xml-property name="dependentOn" value="site-pair-set"/>
+ <xml-property name="container" value="routing-instances"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="SitePairs">
+ <xml-properties>
+ <xml-property name="description" value="probe within a set"/>
+ </xml-properties>
+ <xml-root-element name="site-pairs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sitePair" name="site-pair" type="inventory.aai.onap.org.v13.SitePair"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="SitePair">
+ <xml-root-element name="site-pair"/>
+ <java-attributes>
+ <xml-element java-attribute="sitePairId" name="site-pair-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="unique identifier of probe"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sourceIp" name="source-ip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prefix address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="destinationIp" name="destination-ip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prefix address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ip version, v4, v6"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="destinationHostname" name="destination-hostname" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Hostname of the destination equipment to which SLAs are measured against."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="destinationEquipType" name="destination-equip-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The type of destinatination equipment. Could be Router, UCPE, etc."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="classesOfService" name="classes-of-service" type="inventory.aai.onap.org.v13.ClassesOfService"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="site-pair-id"/>
+ <xml-property name="uniqueProps" value="site-pair-id"/>
+ <xml-property name="dependentOn" value="routing-instance"/>
+ <xml-property name="container" value="site-pairs"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="ClassesOfService">
+ <xml-properties>
+ <xml-property name="description" value="class-of-service of probe"/>
+ </xml-properties>
+ <xml-root-element name="classes-of-service"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="classOfService" name="class-of-service" type="inventory.aai.onap.org.v13.ClassOfService"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ClassOfService">
+ <xml-root-element name="class-of-service"/>
+ <java-attributes>
+ <xml-element java-attribute="cos" name="cos" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="unique identifier of probe"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="probeId" name="probe-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="identifier of probe"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="probeType" name="probe-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="type of probe"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="cos"/>
+ <xml-property name="dependentOn" value="site-pair"/>
+ <xml-property name="container" value="classes-of-service"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VpnBindings">
+ <xml-root-element name="vpn-bindings"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vpnBinding" name="vpn-binding" type="inventory.aai.onap.org.v13.VpnBinding"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="VpnBinding">
+ <xml-root-element name="vpn-binding"/>
+ <java-attributes>
+ <xml-element java-attribute="vpnId" name="vpn-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="VPN ID, globally unique within A&amp;AI"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnName" name="vpn-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="VPN Name"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnPlatform" name="vpn-platform" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the platform associated with the VPN example AVPN, Mobility"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnType" name="vpn-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of the vpn, should be taken from enumerated/valid values"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnRegion" name="vpn-region" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="region of customer vpn"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="customerVpnId" name="customer-vpn-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="id for this customer vpn"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeDistinguisher" name="route-distinguisher" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeTargets" name="route-targets" type="inventory.aai.onap.org.v13.RouteTargets"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList">
+ <xml-properties>
+ <xml-property name="description" value="l3-networks relate to vpn-bindings"/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="VPN binding"/>
+ <xml-property name="nameProps" value="vpn-name,vpn-type"/>
+ <xml-property name="indexedProps" value="vpn-name,vpn-id,vpn-type"/>
+ <xml-property name="searchable" value="vpn-id,vpn-name"/>
+ <xml-property name="uniqueProps" value="vpn-id"/>
+ <xml-property name="container" value="vpn-bindings"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VplsPes">
+ <xml-properties>
+ <xml-property name="description" value="Collection of VPLS Provider Edge routers"/>
+ </xml-properties>
+ <xml-root-element name="vpls-pes"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vplsPe" name="vpls-pe" type="inventory.aai.onap.org.v13.VplsPe"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="VplsPe">
+ <xml-root-element name="vpls-pe"/>
+ <java-attributes>
+ <xml-element java-attribute="equipmentName" name="equipment-name" required="true" type="java.lang.String" xml-key="true"/>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address)."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Client should send valid enumerated value, e.g., VPLS-PE."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Temporary location for stag to get to VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v13.PInterfaces"/>
+ <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v13.LagInterfaces"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="VPLS Provider Edge routers."/>
+ <xml-property name="indexedProps" value="prov-status,equipment-name"/>
+ <xml-property name="container" value="vpls-pes"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="MulticastConfigurations">
+ <xml-properties>
+ <xml-property name="description" value="multicast configuration of generic-vnf ip-address"/>
+ </xml-properties>
+ <xml-root-element name="multicast-configurations"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="multicastConfiguration" name="multicast-configuration" type="inventory.aai.onap.org.v13.MulticastConfiguration"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="MulticastConfiguration">
+ <xml-root-element name="multicast-configuration"/>
+ <java-attributes>
+ <xml-element java-attribute="multicastConfigurationId" name="multicast-configuration-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of multicast configuration."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="multicastProtocol" name="multicast-protocol" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="protocol of multicast configuration"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="rpType" name="rp-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="rp type of multicast configuration"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="multicast-configuration-id"/>
+ <xml-property name="uniqueProps" value="multicast-configuration-id"/>
+ <xml-property name="container" value="multicast-configurations"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Vces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated."/>
+ </xml-properties>
+ <xml-root-element name="vces"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vce" name="vce" type="inventory.aai.onap.org.v13.Vce"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Vce">
+ <xml-root-element name="vce"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF. This is unique across the graph."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of VNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alternate name of VNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - do not use"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network role being played by this VNF"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpeId" name="vpe-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of VPE connected to this VCE."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="v6VceWanAddress" name="v6-vce-wan-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Valid v6 IP address for the WAN Link on this router. Implied length of /64."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Loopback0 address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - see child relationships"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portGroups" name="port-groups" type="inventory.aai.onap.org.v13.PortGroups"/>
+ <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.onap.org.v13.Licenses"/>
+ <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.onap.org.v13.Entitlements"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated."/>
+ <xml-property name="nameProps" value="vnf-name"/>
+ <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id"/>
+ <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2"/>
+ <xml-property name="uniqueProps" value="vnf-id"/>
+ <xml-property name="container" value="vces"/>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="extends" value="vnf"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="PortGroups">
+ <xml-root-element name="port-groups"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="portGroup" name="port-group" type="inventory.aai.onap.org.v13.PortGroup"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="PortGroup">
+ <xml-root-element name="port-group"/>
+ <java-attributes>
+ <xml-element java-attribute="interfaceId" name="interface-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of the interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of this Interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkName" name="neutron-network-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network name of this Interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portGroupId" name="port-group-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID for port group in vmware"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portGroupName" name="port-group-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Likely to duplicate value of neutron network name"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="switchName" name="switch-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="DVS or standard switch name (should be non-null for port groups associated with DVS)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cvlanTags" name="cvlan-tags" type="inventory.aai.onap.org.v13.CvlanTags"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Used to capture the network interfaces of this VCE"/>
+ <xml-property name="nameProps" value="port-group-name"/>
+ <xml-property name="indexedProps" value="port-group-id,heat-stack-id,interface-id,interface-name,switch-name"/>
+ <xml-property name="dependentOn" value="vce"/>
+ <xml-property name="container" value="port-groups"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="CvlanTags">
+ <xml-root-element name="cvlan-tags"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="cvlanTagEntry" name="cvlan-tag-entry" type="inventory.aai.onap.org.v13.CvlanTagEntry"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="CvlanTagEntry">
+ <xml-root-element name="cvlan-tag-entry"/>
+ <java-attributes>
+ <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="See mis-na-virtualization-platform.yang"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="dependentOn" value="port-group"/>
+ <xml-property name="indexedProps" value="cvlan-tag"/>
+ <xml-property name="container" value="cvlan-tags"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Vnfcs">
+ <xml-properties>
+ <xml-property name="description" value="virtual network components associated with a vserver from application controller."/>
+ </xml-properties>
+ <xml-root-element name="vnfcs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.onap.org.v13.Vnfc"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Vnfc">
+ <xml-root-element name="vnfc"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of vnfc."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfcNamingCode" name="nfc-naming-code" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Short code that is used in naming instances of the item being modeled"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfcFunction" name="nfc-function" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="prov status of this vnfc"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Oam V4 vip address of this vnfc"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Group notation of VNFC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv4AddressList"/>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv6AddressList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id"/>
+ <xml-property name="searchable" value="vnfc-name"/>
+ <xml-property name="container" value="vnfcs"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="L3Networks">
+ <xml-root-element name="l3-networks"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.onap.org.v13.L3Network"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="L3Network">
+ <xml-root-element name="l3-network"/>
+ <java-attributes>
+ <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Network ID, should be uuid. Unique across A&amp;AI."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the network, governed by some naming convention.."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkType" name="network-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of the network - who defines these values?"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role the network plans - who defines these values?"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network technology - who defines these values?"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of this Interface"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isBoundToVpn" name="is-bound-to-vpn" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Set to true if bound to VPN"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="network role instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Contrail FQDN for the network"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name associated with the physical network."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not network is a provider network."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not network is a shared network."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not network is an external network."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.onap.org.v13.Subnets"/>
+ <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.onap.org.v13.CtagAssignments"/>
+ <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.onap.org.v13.SegmentationAssignments"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList">
+ <xml-properties>
+ <xml-property name="description" value="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding"/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Generic network definition"/>
+ <xml-property name="nameProps" value="network-name"/>
+ <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role"/>
+ <xml-property name="searchable" value="network-id,network-name"/>
+ <xml-property name="uniqueProps" value="network-id"/>
+ <xml-property name="container" value="l3-networks"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="NetworkPolicies">
+ <xml-root-element name="network-policies"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="networkPolicy" name="network-policy" type="inventory.aai.onap.org.v13.NetworkPolicy"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="NetworkPolicy">
+ <xml-root-element name="network-policy"/>
+ <java-attributes>
+ <xml-element java-attribute="networkPolicyId" name="network-policy-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID representing unique key to this instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkPolicyFqdn" name="network-policy-fqdn" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Contrail FQDN for the policy"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID for the openStack Heat instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="nameProps" value="network-policy-fqdn"/>
+ <xml-property name="indexedProps" value="network-policy-id,network-policy-fqdn"/>
+ <xml-property name="searchable" value="network-policy-id,network-policy-fqdn"/>
+ <xml-property name="uniqueProps" value="network-policy-id"/>
+ <xml-property name="container" value="network-policies"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="CtagAssignments">
+ <xml-root-element name="ctag-assignments"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.onap.org.v13.CtagAssignment"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="CtagAssignment">
+ <xml-root-element name="ctag-assignment"/>
+ <java-attributes>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="id."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="vlan-id-inner"/>
+ <xml-property name="dependentOn" value="l3-network"/>
+ <xml-property name="container" value="ctag-assignments"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Subnets">
+ <xml-root-element name="subnets"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.onap.org.v13.Subnet"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Subnet">
+ <xml-root-element name="subnet"/>
+ <java-attributes>
+ <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Subnet ID, should be UUID."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name associated with the subnet."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron id of this subnet"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="gateway ip address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="network start address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="cidr mask"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ip version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="dhcpEnabled" name="dhcp-enabled" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="dhcp enabled"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the start address reserved for use by dhcp"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the last address reserved for use by dhcp"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnetRole" name="subnet-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role of the subnet, referenced when assigning IPs"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipAssignmentDirection" name="ip-assignment-direction" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ip address assignment direction of the subnet"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnetSequence" name="subnet-sequence" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="sequence of the subnet"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="hostRoutes" name="host-routes" type="inventory.aai.onap.org.v13.HostRoutes"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="subnet-id,subnet-name"/>
+ <xml-property name="nameProps" value="subnet-name"/>
+ <xml-property name="uniqueProps" value="subnet-id"/>
+ <xml-property name="dependentOn" value="l3-network"/>
+ <xml-property name="container" value="subnets"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="GenericVnfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of VNFs"/>
+ </xml-properties>
+ <xml-root-element name="generic-vnfs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.onap.org.v13.GenericVnf"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="GenericVnf">
+ <xml-root-element name="generic-vnf"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF. This is unique across the graph."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of VNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alternate name of VNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems."/>
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - do not use"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Client should send valid enumerated value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, used by MSO."/>
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="identifier of managed by ATT or customer"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4 Loopback0 address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v6 Loopback address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v6 management address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="indicates whether generic-vnf access uses SSH"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="entitlementAssignmentGroupUuid" name="entitlement-assignment-group-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the specific entitlement resource. OBSOLETE - See child relationships."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseAssignmentGroupUuid" name="license-assignment-group-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the license assignment group. OBSOLETE - See child relationships."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKeyUuid" name="license-key-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the actual license resource. OBSOLETE - See child relationships."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="as-number of the VNF"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="represents sub zone of the rr plane"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfType" name="nf-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Generic description of the type of NF"/>
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfFunction" name="nf-function" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="English description of Network function that the specific VNF deployment is providing"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role in the network that this model will be providing"/>
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfNamingCode" name="nf-naming-code" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="string assigned to this model used for naming purposes"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Gateway address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="Prefix length for oam-address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Temporary location for S-TAG to get to VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nmProfileName" name="nm-profile-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network Management profile of this VNF"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces"/>
+ <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v13.LagInterfaces"/>
+ <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.onap.org.v13.VfModules"/>
+ <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.onap.org.v13.Licenses"/>
+ <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.onap.org.v13.Entitlements"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="General purpose VNF"/>
+ <xml-property name="nameProps" value="vnf-name"/>
+ <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role"/>
+ <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2"/>
+ <xml-property name="uniqueProps" value="vnf-id"/>
+ <xml-property name="container" value="generic-vnfs"/>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="extends" value="vnf"/>
+ <xml-property name="containsSuggestibleProps" value="true"/>
+ <xml-property name="suggestionAliases" value="VNFs"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VfModules">
+ <xml-properties>
+ <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs"/>
+ </xml-properties>
+ <xml-root-element name="vf-modules"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.onap.org.v13.VfModule"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="VfModule">
+ <xml-root-element name="vf-module"/>
+ <java-attributes>
+ <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of vf-module."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of vf-module"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isBaseVfModule" name="is-base-vf-module" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is base vf module"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model."/>
+ <xml-property name="visibility" value="internal"/>
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the Contrail unique ID for a service-instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="moduleIndex" name="module-index" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="a deployment unit of VNFCs"/>
+ <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn"/>
+ <xml-property name="searchable" value="vf-module-id,vf-module-name"/>
+ <xml-property name="dependentOn" value="generic-vnf"/>
+ <xml-property name="container" value="vf-modules"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="LagLinks">
+ <xml-properties>
+ <xml-property name="description" value="Collection of link aggregation connections"/>
+ </xml-properties>
+ <xml-root-element name="lag-links"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lagLink" name="lag-link" type="inventory.aai.onap.org.v13.LagLink"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="LagLink">
+ <xml-root-element name="lag-link"/>
+ <java-attributes>
+ <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Alphabetical concatenation of lag-interface names"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="LAG links can connect lag-interfaces"/>
+ <xml-property name="indexedProps" value="link-name"/>
+ <xml-property name="container" value="lag-links"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Newvces">
+ <xml-properties>
+ <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce."/>
+ </xml-properties>
+ <xml-root-element name="newvces"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="newvce" name="newvce" type="inventory.aai.onap.org.v13.Newvce"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Newvce">
+ <xml-root-element name="newvce"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfId2" name="vnf-id2" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF, can't use same attribute name right now until we promote this new object"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of VNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alternate name of VNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - do not use"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address)."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Client should send valid enumerated value."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4 Loopback0 address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce."/>
+ <xml-property name="nameProps" value="vnf-name"/>
+ <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2"/>
+ <xml-property name="searchable" value="vnf-id2,vnf-name,vnf-name2"/>
+ <xml-property name="uniqueProps" value="vnf-id2"/>
+ <xml-property name="container" value="newvces"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Pnfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of Physical Network Functions."/>
+ </xml-properties>
+ <xml-root-element name="pnfs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.onap.org.v13.Pnf"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Pnf">
+ <xml-root-element name="pnf"/>
+ <java-attributes>
+ <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="unique name of Physical Network Function."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="name of Physical Network Function."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="source of name2"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="id of pnf"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Equipment type. Source of truth should define valid values."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Equipment vendor. Source of truth should define valid values."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Equipment model. Source of truth should define valid values."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="identifier of managed by ATT or customer"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Serial number of the device"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV4 Loopback 0 address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV6 Loopback 0 address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV4 AIM address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV6 AIM address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV6 OAM address"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Nf Role is the role performed by this instance in the network."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The ASDC model id for this resource model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The ASDC model version for this resource model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v13.PInterfaces"/>
+ <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v13.LagInterfaces"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE."/>
+ <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id"/>
+ <xml-property name="searchable" value="pnf-name"/>
+ <xml-property name="uniqueProps" value="pnf-name"/>
+ <xml-property name="container" value="pnfs"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="PhysicalLinks">
+ <xml-properties>
+ <xml-property name="description" value="Collection of physical connections, typically between p-interfaces"/>
+ </xml-properties>
+ <xml-root-element name="physical-links"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.onap.org.v13.PhysicalLink"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="PhysicalLink">
+ <xml-root-element name="physical-link"/>
+ <java-attributes>
+ <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Circuit it"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Dual access mode (e.g., primary, secondary"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the service Provider on this link."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthUpValue" name="service-provider-bandwidth-up-value" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="Upstream Bandwidth value agreed with the service provider"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthUpUnits" name="service-provider-bandwidth-up-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Units for the upstream BW value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthDownValue" name="service-provider-bandwidth-down-value" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="Downstream Bandwidth value agreed with the service provider"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthDownUnits" name="service-provider-bandwidth-down-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Units for downstream BW value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Collection of physical connections, typically between p-interfaces"/>
+ <xml-property name="indexedProps" value="circuit-id,link-name"/>
+ <xml-property name="alternateKeys1" value="circuit-id"/>
+ <xml-property name="container" value="physical-links"/>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="searchable" value="link-name,circuit-id"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VigServers">
+ <xml-root-element name="vig-servers"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vigServer" name="vig-server" type="inventory.aai.onap.org.v13.VigServer"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="VigServer">
+ <xml-root-element name="vig-server"/>
+ <java-attributes>
+ <xml-element java-attribute="vigAddressType" name="vig-address-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="indicates whether the VIG is for AVPN or INTERNET"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV4Vig" name="ipaddress-v4-vig" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4 IP of the vig server"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV6Vig" name="ipaddress-v6-vig" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v6 IP of the vig server"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607"/>
+ <xml-property name="indexedProps" value="vig-address-type"/>
+ <xml-property name="dependentOn" value="ipsec-configuration"/>
+ <xml-property name="container" value="vig-servers"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="IpsecConfigurations">
+ <xml-root-element name="ipsec-configurations"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ipsecConfiguration" name="ipsec-configuration" type="inventory.aai.onap.org.v13.IpsecConfiguration"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="IpsecConfiguration">
+ <xml-root-element name="ipsec-configuration"/>
+ <java-attributes>
+ <xml-element java-attribute="ipsecConfigurationId" name="ipsec-configuration-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID of this configuration"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedVigAddressType" name="requested-vig-address-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicate the type of VIG server like AVPN, INTERNET, BOTH"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedEncryptionStrength" name="requested-encryption-strength" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedDmzType" name="requested-dmz-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ATT can offer a shared DMZ or a DMZ specific to a customer"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sharedDmzNetworkAddress" name="shared-dmz-network-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network address of shared DMZ"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedCustomerName" name="requested-customer-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="If the DMZ is a custom DMZ, this field will indicate the customer information"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikeVersion" name="ike-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="can be 1 or 2"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1Authentication" name="ikev1-authentication" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Contains values like md5, sha1, sha256, sha384"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1Encryption" name="ikev1-encryption" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1DhGroup" name="ikev1-dh-group" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1AmGroupId" name="ikev1-am-group-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Group name defined in VIG for clients using aggressive mode"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1AmPassword" name="ikev1-am-password" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="pre-shared key for the above group name "/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1SaLifetime" name="ikev1-sa-lifetime" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Lifetime for IKEv1 SA"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecAuthentication" name="ipsec-authentication" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="md5, sha1, sha256, sha384"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecEncryption" name="ipsec-encryption" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecSaLifetime" name="ipsec-sa-lifetime" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Life time for IPSec SA"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecPfs" name="ipsec-pfs" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="enable PFS or not"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="xauthUserId" name="xauth-userid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="user ID for xAuth, sm-user,ucpeHostName,nmteHostName"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="xauthUserPassword" name="xauth-user-password" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Encrypted using the Juniper $9$ algorithm"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dpdInterval" name="dpd-interval" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The time between DPD probe"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dpdFrequency" name="dpd-frequency" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Maximum number of DPD before claiming the tunnel is down"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="vigServers" name="vig-servers" type="inventory.aai.onap.org.v13.VigServers"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C"/>
+ <xml-property name="indexedProps" value="ipsec-configuration-id"/>
+ <xml-property name="uniqueProps" value="ipsec-configuration-id"/>
+ <xml-property name="container" value="ipsec-configurations"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="RouteTableReferences">
+ <xml-properties>
+ <xml-property name="description" value="Collection of openstack route table references"/>
+ </xml-properties>
+ <xml-root-element name="route-table-references"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="routeTableReference" name="route-table-reference" type="inventory.aai.onap.org.v13.RouteTableReference"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RouteTableReference">
+ <xml-root-element name="route-table-reference"/>
+ <java-attributes>
+ <xml-element java-attribute="routeTableReferenceId" name="route-table-reference-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeTableReferenceFqdn" name="route-table-reference-fqdn" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="FQDN entry in the route table."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+
+ <xml-properties>
+ <xml-property name="description" value="Openstack route table reference."/>
+ <xml-property name="nameProps" value="route-table-reference-fqdn"/>
+ <xml-property name="uniqueProps" value="route-table-reference-id"/>
+ <xml-property name="indexedProps" value="route-table-reference-id,route-table-reference-fqdn"/>
+ <xml-property name="container" value="route-table-references"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="InstanceGroups">
+ <xml-properties>
+ <xml-property name="description" value="Collection of openstack route table references"/>
+ </xml-properties>
+ <xml-root-element name="instance-groups"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="instanceGroup" name="instance-group" type="inventory.aai.onap.org.v13.InstanceGroup"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="InstanceGroup">
+ <xml-root-element name="instance-group"/>
+ <java-attributes>
+
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Instance Group ID, UUID assigned to this instance."/>
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="instanceGroupRole" name="instance-group-role" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role of the instance group."/>
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ASDC model id for this resource or service model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-version-id"/>
+ <xml-property name="dbAlias" value="model-invariant-id-local"/>
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="modelVersionId" name="model-version-id" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ASDC model version uid for this resource model."/>
+ <xml-property name="visibility" value="deployment"/>
+ <xml-property name="requires" value="model-invariant-id"/>
+ <xml-property name="dbAlias" value="model-version-id-local"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="description" name="description" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Descriptive text to help identify the usage of this instance-group"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="instanceGroupType" name="instance-group-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Only valid value today is lower case ha for high availability"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="instanceGroupName" name="instance-group-name" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Instance-Group Name."/>
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="instanceGroupFunction" name="instance-group-function" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Instance-Group Function"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+
+ <xml-properties>
+ <xml-property name="description" value="General mechanism for grouping instances"/>
+ <xml-property name="nameProps" value="description,instance-group-name"/>
+ <xml-property name="uniqueProps" value="id"/>
+ <xml-property name="searchable" value="id,description"/>
+ <xml-property name="indexedProps" value="id,description,type,sub-type,model-invariant-id,model-version-id"/>
+ <xml-property name="container" value="instance-groups"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="SegmentationAssignments">
+ <xml-properties>
+ <xml-property name="description" value="Collection of openstack segmentation assignments"/>
+ </xml-properties>
+ <xml-root-element name="segmentation-assignments"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.onap.org.v13.SegmentationAssignment"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="SegmentationAssignment">
+ <xml-root-element name="segmentation-assignment"/>
+ <java-attributes>
+ <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Openstack segmentation assignment."/>
+ <xml-property name="indexedProps" value="segmentation-id"/>
+ <xml-property name="dependentOn" value="l3-network"/>
+ <xml-property name="container" value="segmentation-assignments"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Entitlements">
+ <xml-properties>
+ <xml-property name="description" value="Entitlements, keyed by group-uuid and resource-uuid, related to license management"/>
+ </xml-properties>
+ <xml-root-element name="entitlements"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="entitlement" name="entitlement" type="inventory.aai.onap.org.v13.Entitlement"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Entitlement">
+ <xml-root-element name="entitlement"/>
+ <java-attributes>
+ <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID for the entitlement group the resource comes from, should be uuid."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of an entitlement resource. "/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Metadata for entitlement group."/>
+ <xml-property name="indexedProps" value="group-uuid,resource-uuid"/>
+ <xml-property name="dependentOn" value="generic-vnf,vce"/>
+ <xml-property name="container" value="entitlements"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Licenses">
+ <xml-properties>
+ <xml-property name="description" value="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management"/>
+ </xml-properties>
+ <xml-root-element name="licenses"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="license" name="license" type="inventory.aai.onap.org.v13.License"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="License">
+ <xml-root-element name="license"/>
+ <java-attributes>
+ <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID for the license group the resource belongs to, should be uuid."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of a license resource. "/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Metadata for license group."/>
+ <xml-property name="indexedProps" value="group-uuid,resource-uuid"/>
+ <xml-property name="dependentOn" value="generic-vnf,vce"/>
+ <xml-property name="container" value="licenses"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Vnf">
+ <xml-root-element name="vnf"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF. This is unique across the graph."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Abstract vnf class"/>
+ <xml-property name="indexedProps" value="vnf-id"/>
+ <xml-property name="uniqueProps" value="vnf-id"/>
+ <xml-property name="inheritors" value="vce,generic-vnf"/>
+ <xml-property name="abstract" value="true"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Zones">
+ <xml-properties>
+ <xml-property name="description" value="Collection of zones"/>
+ </xml-properties>
+ <xml-root-element name="zones"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="zone" name="zone" type="inventory.aai.onap.org.v13.Zone"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Zone">
+ <xml-root-element name="zone"/>
+ <java-attributes>
+ <xml-element java-attribute="zoneId" name="zone-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Code assigned by AIC to the zone"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="zoneName" name="zone-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="English name associated with the zone"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="designType" name="design-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Design of zone [Medium/Large…]"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="zoneContext" name="zone-context" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Context of zone [production/test]"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="status" name="status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Status of a zone."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="A zone is a grouping of assets in a location homing to the same connections into the CBB"/>
+ <xml-property name="nameProps" value="zone-name"/>
+ <xml-property name="indexedProps" value="zone-id,design-type,zone-context"/>
+ <xml-property name="uniqueProps" value="zone-id"/>
+ <xml-property name="container" value="zones"/>
+ <xml-property name="namespace" value="network"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="RouteTargets">
+ <xml-properties>
+ <xml-property name="description" value="Collection of route target information"/>
+ </xml-properties>
+ <xml-root-element name="route-targets"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="routeTarget" name="route-target" type="inventory.aai.onap.org.v13.RouteTarget"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RouteTarget">
+ <xml-root-element name="route-target"/>
+ <java-attributes>
+ <xml-element java-attribute="globalRouteTarget" name="global-route-target" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Number used to identify an RT, globally unique in the network"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeTargetRole" name="route-target-role" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Role assigned to this route target"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Route target information"/>
+ <xml-property name="container" value="route-targets"/>
+ <xml-property name="dependentOn" value="vpn-binding"/>
+ <xml-property name="canBeLinked" value="true"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="SriovPfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of SR-IOV Physical Functions."/>
+ </xml-properties>
+ <xml-root-element name="sriov-pfs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sriovPf" name="sriov-pf" type="inventory.aai.onap.org.v13.SriovPf"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="SriovPf">
+ <xml-root-element name="sriov-pf"/>
+ <java-attributes>
+ <xml-element java-attribute="pfPciId" name="pf-pci-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Identifier for the sriov-pf"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="SR-IOV Physical Function"/>
+ <xml-property name="indexedProps" value="pf-pci-id"/>
+ <xml-property name="dependentOn" value="p-interface"/>
+ <xml-property name="container" value="sriov-pfs"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="HostRoutes">
+ <xml-root-element name="host-routes"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="hostRoute" name="host-route" type="inventory.aai.onap.org.v13.HostRoute"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="HostRoute">
+ <xml-root-element name="host-route"/>
+ <java-attributes>
+ <xml-element java-attribute="hostRouteId" name="host-route-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="host-route id"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routePrefix" name="route-prefix" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="subnet prefix"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nextHop" name="next-hop" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Could be ip-address, hostname, or service-instance"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nextHopType" name="next-hop-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Should be ip-address, hostname, or service-instance to match next-hop"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="host-route-id"/>
+ <xml-property name="dependentOn" value="subnet"/>
+ <xml-property name="container" value="host-routes"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="ForwardingPaths">
+ <xml-root-element name="forwarding-paths"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="forwardingPath" name="forwarding-path" type="inventory.aai.onap.org.v13.ForwardingPath"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ForwardingPath">
+ <xml-root-element name="forwarding-path"/>
+ <xml-properties>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="indexedProps" value="forwarding-path-id,forwarding-path-name"/>
+ <xml-property name="description" value="Entity that describes the sequenced forwarding path between interfaces of services or resources"/>
+ <xml-property name="container" value="forwarding-paths"/>
+ <xml-property name="nameProps" value="forwarding-path-name"/>
+ <xml-property name="uniqueProps" value="forwarding-path-id"/>
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="forwardingPathId" name="forwarding-path-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of this FP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwardingPathName" name="forwarding-path-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the FP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the self link for this FP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwarders" name="forwarders" type="inventory.aai.onap.org.v13.Forwarders"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Forwarders">
+ <xml-root-element name="forwarders"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="forwarder" name="forwarder" type="inventory.aai.onap.org.v13.Forwarder"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Forwarder">
+ <xml-root-element name="forwarder"/>
+ <xml-properties>
+ <xml-property name="indexedProps" value="sequence"/>
+ <xml-property name="description" value="Entity describing a sequenced segment of forwarding path"/>
+ <xml-property name="container" value="forwarders"/>
+ <xml-property name="dependentOn" value="forwarding-path"/>
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="sequence" name="sequence" required="true" type="java.lang.Integer" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of this segmentation"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwarderRole" name="forwarder-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ingress, intermediate, egress"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="ForwarderEvcs">
+ <xml-root-element name="forwarder-evcs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="forwarderEvc" name="forwarder-evc" type="inventory.aai.onap.org.v13.ForwarderEvc"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ForwarderEvc">
+ <xml-root-element name="forwarder-evc"/>
+ <java-attributes>
+ <xml-element java-attribute="forwarderEvcId" name="forwarder-evc-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Key for forwarder-evc object"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ivlan" name="ivlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Internal VLAN."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="svlan" name="svlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="SVLAN value for ingress of egress forwarder."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cvlan" name="cvlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CVLAN value for ingress of egress forwarder."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanMappings" name="vlan-mappings" type="inventory.aai.onap.org.v13.VlanMappings"/>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="forwarder object is an optional child object of the Configuration object."/>
+ <xml-property name="dependentOn" value="configuration"/>
+ <xml-property name="uniqueProps" value="forwarder-evc-id"/>
+ <xml-property name="container" value="forwarder-evcs"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VlanMappings">
+ <xml-properties>
+ <xml-property name="description" value="Collection of vlan mappings."/>
+ </xml-properties>
+ <xml-root-element name="vlan-mappings"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vlanMapping" name="vlan-mapping" type="inventory.aai.onap.org.v13.VlanMapping"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="VlanMapping">
+ <xml-root-element name="vlan-mapping"/>
+ <java-attributes>
+ <xml-element java-attribute="vlanMappingId" name="vlan-mapping-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Key for vlan-mapping object."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="uniCvlan" name="uni-cvlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CVLAN value from the UNI/ingress side of the SAREA gateway access device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nniSvlan" name="nni-svlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="SVLAN value from the NNI/egress side of the SAREA gateway access device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nniCvlan" name="nni-cvlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CVLAN value from the NNI/egress side of the SAREA gateway access device."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ivLan" name="ivlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The internal VLAN ('IVLAN') value. Specific to Arista devices."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"/>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects."/>
+ <xml-property name="dependentOn" value="forwarder-evc"/>
+ <xml-property name="uniqueProps" value="vlan-mapping-id"/>
+ <xml-property name="container" value="vlan-mappings"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="Evcs">
+ <xml-root-element name="evcs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="evc" name="evc" type="inventory.aai.onap.org.v13.Evc"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="Evc">
+ <xml-root-element name="evc"/>
+ <java-attributes>
+ <xml-element java-attribute="evcId" name="evc-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique/key field for the evc object"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwardingPathTopology" name="forwarding-path-topology" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Point-to-Point, Multi-Point"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cirValue" name="cir-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Commited Information Rate"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cirUnits" name="cir-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CIR units"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="connectionDiversityGroupId" name="connection-diversity-group-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Diversity Group ID"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceHours" name="service-hours" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="formerly Performance Group"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espEvcCircuitId" name="esp-evc-circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="EVC Circuit ID of ESP EVC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espEvcCirValue" name="esp-evc-cir-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Committed Information Rate (For ESP)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espEvcCirUnits" name="esp-evc-cir-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CIR units (For ESP)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espItuCode" name="esp-itu-code" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Identifies ESP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectorPopClli" name="collector-pop-clli" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collector POP CLLI (from the hostname of the access pnf)"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interConnectTypeIngress" name="inter-connect-type-ingress" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Interconnect type on ingress side of EVC."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tagmodeAccessIngress" name="tagmode-access-ingress" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="tagode for collector side of EVC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tagmodeAccessEgress" name="tagmode-access-egress" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="tagMode for network side of EVC"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="evc object is an optional child object of the Configuration object."/>
+ <xml-property name="dependentOn" value="configuration"/>
+ <xml-property name="uniqueProps" value="evc-id"/>
+ <xml-property name="container" value="evcs"/>
+ </xml-properties>
+ </java-type>
+ </java-types>\n</xml-bindings>
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-for-xml-test.properties b/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-for-xml-test.properties
new file mode 100644
index 00000000..30da682d
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-for-xml-test.properties
@@ -0,0 +1,3 @@
+schema.configuration.location=imatest
+schema.nodes.location=andIMalittleteapot
+schema.edges.location=meh \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-wiring-test.properties b/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-wiring-test.properties
new file mode 100644
index 00000000..393b8f12
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest-wiring-test.properties
@@ -0,0 +1,10 @@
+schema.configuration.location=NA
+schema.nodes.location=src/test/resources/oxm/
+schema.edges.location=src/test/resources/edgeRules/
+schema.version.list=v7,v8,v9,v10,v11,v12,v13,v14
+schema.version.depth.start=v9
+schema.version.related.link.start=v10
+schema.version.app.root.start=v11
+schema.version.namespace.change.start=v11
+schema.version.edge.label.start=v12
+schema.version.api.default=v14 \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest2.properties b/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest2.properties
new file mode 100644
index 00000000..dee37c41
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/forWiringTests/schema-ingest2.properties
@@ -0,0 +1,3 @@
+schema.configuration.location=testConfig.json
+schema.nodes.location=bloop/blap
+schema.edges.location=different \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngest2.properties b/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngest2.properties
deleted file mode 100644
index fb20eba2..00000000
--- a/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngest2.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-schemaConfig=testConfig.json
-nodeDir=bloop/blap
-edgeDir=different \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestForXMLTest.properties b/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestForXMLTest.properties
deleted file mode 100644
index 11e5fb47..00000000
--- a/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestForXMLTest.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-schemaConfig=imatest
-nodeDir=andIMalittleteapot
-edgeDir=meh \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestWiringTest.properties b/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestWiringTest.properties
deleted file mode 100644
index 8bff7d4d..00000000
--- a/aai-schema-ingest/src/test/resources/forWiringTests/schemaIngestWiringTest.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-schemaConfig=NA
-nodeDir=src/test/resources/oxm/
-edgeDir=src/test/resources/edgeRules/ \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/forWiringTests/testUsingPropFileContext.xml b/aai-schema-ingest/src/test/resources/forWiringTests/testUsingPropFileContext.xml
index 7c3302f0..1d3e61e4 100644
--- a/aai-schema-ingest/src/test/resources/forWiringTests/testUsingPropFileContext.xml
+++ b/aai-schema-ingest/src/test/resources/forWiringTests/testUsingPropFileContext.xml
@@ -9,11 +9,11 @@
<bean id="schemaLocationsBean" class="org.onap.aai.setup.SchemaLocationsBean">
- <property name="schemaConfigLocation" value="${schemaConfig}" />
- <property name="nodeDirectory" value="${nodeDir}" />
- <property name="edgeDirectory" value="${edgeDir}" />
+ <property name="schemaConfigLocation" value="${schema.configuration.location}" />
+ <property name="nodeDirectory" value="${schema.nodes.location}" />
+ <property name="edgeDirectory" value="${schema.edges.location}" />
</bean>
- <context:property-placeholder location="classpath:forWiringTests/schemaIngestForXMLTest.properties" ignore-unresolvable="true" />
+ <context:property-placeholder location="classpath:forWiringTests/schema-ingest-for-xml-test.properties" ignore-unresolvable="true" />
</beans> \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/oxm/business_oxm_v12.xml b/aai-schema-ingest/src/test/resources/oxm/business_oxm_v12.xml
new file mode 100644
index 00000000..648110c3
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/oxm/business_oxm_v12.xml
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ ============LICENSE_START=======================================================
+ org.openecomp.aai
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v13" xml-mapping-metadata-complete="true">
+ <xml-schema element-form-default="QUALIFIED">
+ <xml-ns namespace-uri="http://org.onap.aai.inventory/v13" />
+ </xml-schema>
+ <java-types>
+ <java-type name="AllottedResources">
+ <xml-properties>
+ <xml-property name="description" value="This object is used to store slices of services being offered" />
+ </xml-properties>
+ <xml-root-element name="allotted-resources" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="allottedResource" name="allotted-resource" type="inventory.aai.onap.org.v13.AllottedResource" />
+ </java-attributes>
+ </java-type>
+ <java-type name="AllottedResource">
+ <xml-root-element name="allotted-resource" />
+ <java-attributes>
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="description" name="description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The descriptive information assigned to this allotted resource instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Link back to more information in the controller" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="type" name="type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Generic description of the type of allotted resource." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="role" name="role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role in the network that this resource will be providing." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.onap.org.v13.TunnelXconnects" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Represents a slice or partial piece of a resource that gets separately allotted" />
+ <xml-property name="nameProps" value="description" />
+ <xml-property name="uniqueProps" value="id" />
+ <xml-property name="indexedProps" value="id,model-invariant-id,model-version-id,type,role" />
+ <xml-property name="dependentOn" value="service-instance" />
+ <xml-property name="container" value="allotted-resources" />
+ <!-- <xml-property name="namespace" value="network" /> -->
+ </xml-properties>
+ </java-type>
+ <java-type name="Business">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for business related constructs" />
+ </xml-properties>
+ <xml-root-element name="business" />
+ <java-attributes>
+ <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.onap.org.v13.Connectors" />
+ <xml-element java-attribute="customers" name="customers" type="inventory.aai.onap.org.v13.Customers" />
+ <xml-element java-attribute="linesOfBusiness" name="lines-of-business" type="inventory.aai.onap.org.v13.LinesOfBusiness" />
+ <xml-element java-attribute="owningEntities" name="owning-entities" type="inventory.aai.onap.org.v13.OwningEntities" />
+ <xml-element java-attribute="platforms" name="platforms" type="inventory.aai.onap.org.v13.Platforms" />
+ <xml-element java-attribute="projects" name="projects" type="inventory.aai.onap.org.v13.Projects" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Connectors">
+ <xml-properties>
+ <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" />
+ </xml-properties>
+ <xml-root-element name="connectors" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.onap.org.v13.Connector" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Connector">
+ <xml-root-element name="connector" />
+ <java-attributes>
+ <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of resource instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" />
+ <xml-property name="indexedProps" value="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version" />
+ <xml-property name="container" value="connectors" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Customers">
+ <xml-properties>
+ <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." />
+ </xml-properties>
+ <xml-root-element name="customers" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.onap.org.v13.Customer" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Customer">
+ <xml-root-element name="customer" />
+ <java-attributes>
+ <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." />
+ <xml-property name="defaultValue" value="CUST" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.onap.org.v13.ServiceSubscriptions" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." />
+ <xml-property name="nameProps" value="subscriber-name" />
+ <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" />
+ <xml-property name="searchable" value="global-customer-id,subscriber-name" />
+ <xml-property name="uniqueProps" value="global-customer-id" />
+ <xml-property name="container" value="customers" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="LinesOfBusiness">
+ <xml-properties>
+ <xml-property name="description" value="Collection of lines-of-business" />
+ </xml-properties>
+ <xml-root-element name="lines-of-business" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lineOfBusiness" name="line-of-business" type="inventory.aai.onap.org.v13.LineOfBusiness" />
+ </java-attributes>
+ </java-type>
+ <java-type name="LineOfBusiness">
+ <xml-root-element name="line-of-business" />
+ <java-attributes>
+ <xml-element java-attribute="lineOfBusinessName" name="line-of-business-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the line-of-business (product)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes a line-of-business" />
+ <xml-property name="indexedProps" value="line-of-business-name" />
+ <xml-property name="uniqueProps" value="line-of-business-name" />
+ <xml-property name="container" value="lines-of-business" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="OwningEntities">
+ <xml-properties>
+ <xml-property name="description" value="Collection of owning-entities" />
+ </xml-properties>
+ <xml-root-element name="owning-entities" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="owningEntity" name="owning-entity" type="inventory.aai.onap.org.v13.OwningEntity" />
+ </java-attributes>
+ </java-type>
+ <java-type name="OwningEntity">
+ <xml-root-element name="owning-entity" />
+ <java-attributes>
+ <xml-element java-attribute="owningEntityId" name="owning-entity-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID of an owning entity" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="owningEntityName" name="owning-entity-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Owning entity name" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes an owning-entity" />
+ <xml-property name="indexedProps" value="owning-entity-id,owning-entity-name" />
+ <xml-property name="searchable" value="owning-entity-id" />
+ <xml-property name="uniqueProps" value="owning-entity-id,owning-entity-name" />
+ <xml-property name="container" value="owning-entities" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Platforms">
+ <xml-properties>
+ <xml-property name="description" value="Collection of platforms" />
+ </xml-properties>
+ <xml-root-element name="platforms" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="platform" name="platform" type="inventory.aai.onap.org.v13.Platform" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Platform">
+ <xml-root-element name="platform" />
+ <java-attributes>
+ <xml-element java-attribute="platformName" name="platform-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the platform" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes a platform" />
+ <xml-property name="indexedProps" value="platform-name" />
+ <xml-property name="uniqueProps" value="platform-name" />
+ <xml-property name="container" value="platforms" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Projects">
+ <xml-properties>
+ <xml-property name="description" value="Collection of projects" />
+ </xml-properties>
+ <xml-root-element name="projects" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="project" name="project" type="inventory.aai.onap.org.v13.Project" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Project">
+ <xml-root-element name="project" />
+ <java-attributes>
+ <xml-element java-attribute="projectName" name="project-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the project deploying a service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes the project" />
+ <xml-property name="indexedProps" value="project-name" />
+ <xml-property name="uniqueProps" value="project-name" />
+ <xml-property name="container" value="projects" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceSubscriptions">
+ <xml-properties>
+ <xml-property name="description" value="Collection of objects that group service instances." />
+ </xml-properties>
+ <xml-root-element name="service-subscriptions" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.onap.org.v13.ServiceSubscription" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceSubscription">
+ <xml-root-element name="service-subscription" />
+ <java-attributes>
+ <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This property will be deleted from A&amp;AI in the near future. Only stop gap solution." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.onap.org.v13.ServiceInstances">
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Object that group service instances." />
+ <xml-property name="indexedProps" value="service-type" />
+ <xml-property name="dependentOn" value="customer" />
+ <xml-property name="container" value="service-subscriptions" />
+ <xml-property name="crossEntityReference" value="service-instance,service-type" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceInstances">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service instances" />
+ </xml-properties>
+ <xml-root-element name="service-instances" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.onap.org.v13.ServiceInstance" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceInstance">
+ <xml-root-element name="service-instance" />
+ <java-attributes>
+ <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Uniquely identifies this instance of a service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store a name assigned to the service-instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceType" name="service-type" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceRole" name="service-role" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing the service role." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="environmentContext" name="environment-context" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store the environment context assigned to the service-instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="workloadContext" name="workload-context" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store the workload context assigned to the service-instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the total bandwidth to be used for this service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL customers will use to access the vHN Portal." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata" />
+ <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.onap.org.v13.AllottedResources" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Instance of a service" />
+ <xml-property name="indexedProps" value="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context" />
+ <xml-property name="nameProps" value="service-instance-name" />
+ <xml-property name="searchable" value="service-instance-id,service-instance-name" />
+ <xml-property name="uniqueProps" value="service-instance-id" />
+ <xml-property name="dependentOn" value="service-subscription" />
+ <xml-property name="container" value="service-instances" />
+ </xml-properties>
+ </java-type>
+ <java-type name="TunnelXconnects">
+ <xml-properties>
+ <xml-property name="description" value="This object is used to store the specific tunnel cross connect aspects of an allotted resource" />
+ </xml-properties>
+ <xml-root-element name="tunnel-xconnects" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="tunnelXconnect" name="tunnel-xconnect" type="inventory.aai.onap.org.v13.TunnelXconnect" />
+ </java-attributes>
+ </java-type>
+ <java-type name="TunnelXconnect">
+ <xml-root-element name="tunnel-xconnect" />
+ <java-attributes>
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN uplink bandwidth for WAN1" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN downlink bandwidth for WAN1" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN uplink bandwidth for WAN2" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN downlink bandwidth for WAN2" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted" />
+ <xml-property name="uniqueProps" value="id" />
+ <xml-property name="indexedProps" value="id" />
+ <xml-property name="dependentOn" value="allotted-resource" />
+ <xml-property name="container" value="tunnel-xconnects" />
+ <!-- <xml-property name="namespace" value="network" /> -->
+ </xml-properties>
+ </java-type>
+ </java-types>
+</xml-bindings>
diff --git a/aai-schema-ingest/src/test/resources/oxm/business_oxm_v13.xml b/aai-schema-ingest/src/test/resources/oxm/business_oxm_v13.xml
new file mode 100644
index 00000000..648110c3
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/oxm/business_oxm_v13.xml
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ ============LICENSE_START=======================================================
+ org.openecomp.aai
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v13" xml-mapping-metadata-complete="true">
+ <xml-schema element-form-default="QUALIFIED">
+ <xml-ns namespace-uri="http://org.onap.aai.inventory/v13" />
+ </xml-schema>
+ <java-types>
+ <java-type name="AllottedResources">
+ <xml-properties>
+ <xml-property name="description" value="This object is used to store slices of services being offered" />
+ </xml-properties>
+ <xml-root-element name="allotted-resources" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="allottedResource" name="allotted-resource" type="inventory.aai.onap.org.v13.AllottedResource" />
+ </java-attributes>
+ </java-type>
+ <java-type name="AllottedResource">
+ <xml-root-element name="allotted-resource" />
+ <java-attributes>
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="description" name="description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The descriptive information assigned to this allotted resource instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Link back to more information in the controller" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="type" name="type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Generic description of the type of allotted resource." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="role" name="role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role in the network that this resource will be providing." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tunnelXconnects" name="tunnel-xconnects" type="inventory.aai.onap.org.v13.TunnelXconnects" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Represents a slice or partial piece of a resource that gets separately allotted" />
+ <xml-property name="nameProps" value="description" />
+ <xml-property name="uniqueProps" value="id" />
+ <xml-property name="indexedProps" value="id,model-invariant-id,model-version-id,type,role" />
+ <xml-property name="dependentOn" value="service-instance" />
+ <xml-property name="container" value="allotted-resources" />
+ <!-- <xml-property name="namespace" value="network" /> -->
+ </xml-properties>
+ </java-type>
+ <java-type name="Business">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for business related constructs" />
+ </xml-properties>
+ <xml-root-element name="business" />
+ <java-attributes>
+ <xml-element java-attribute="connectors" name="connectors" type="inventory.aai.onap.org.v13.Connectors" />
+ <xml-element java-attribute="customers" name="customers" type="inventory.aai.onap.org.v13.Customers" />
+ <xml-element java-attribute="linesOfBusiness" name="lines-of-business" type="inventory.aai.onap.org.v13.LinesOfBusiness" />
+ <xml-element java-attribute="owningEntities" name="owning-entities" type="inventory.aai.onap.org.v13.OwningEntities" />
+ <xml-element java-attribute="platforms" name="platforms" type="inventory.aai.onap.org.v13.Platforms" />
+ <xml-element java-attribute="projects" name="projects" type="inventory.aai.onap.org.v13.Projects" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Connectors">
+ <xml-properties>
+ <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" />
+ </xml-properties>
+ <xml-root-element name="connectors" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="connector" name="connector" type="inventory.aai.onap.org.v13.Connector" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Connector">
+ <xml-root-element name="connector" />
+ <java-attributes>
+ <xml-element java-attribute="resourceInstanceId" name="resource-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of resource instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Collection of resource instances used to connect a variety of disparate inventory widgets" />
+ <xml-property name="indexedProps" value="resource-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version" />
+ <xml-property name="container" value="connectors" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Customers">
+ <xml-properties>
+ <xml-property name="description" value="Collection of customer identifiers to provide linkage back to BSS information." />
+ </xml-properties>
+ <xml-root-element name="customers" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="customer" name="customer" type="inventory.aai.onap.org.v13.Customer" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Customer">
+ <xml-root-element name="customer" />
+ <java-attributes>
+ <xml-element java-attribute="globalCustomerId" name="global-customer-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Global customer id used across ECOMP to uniquely identify customer." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subscriberName" name="subscriber-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Subscriber name, an alternate way to retrieve a customer." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subscriberType" name="subscriber-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Subscriber type, a way to provide VID with only the INFRA customers." />
+ <xml-property name="defaultValue" value="CUST" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceSubscriptions" name="service-subscriptions" type="inventory.aai.onap.org.v13.ServiceSubscriptions" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="customer identifiers to provide linkage back to BSS information." />
+ <xml-property name="nameProps" value="subscriber-name" />
+ <xml-property name="indexedProps" value="subscriber-name,global-customer-id,subscriber-type" />
+ <xml-property name="searchable" value="global-customer-id,subscriber-name" />
+ <xml-property name="uniqueProps" value="global-customer-id" />
+ <xml-property name="container" value="customers" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="LinesOfBusiness">
+ <xml-properties>
+ <xml-property name="description" value="Collection of lines-of-business" />
+ </xml-properties>
+ <xml-root-element name="lines-of-business" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lineOfBusiness" name="line-of-business" type="inventory.aai.onap.org.v13.LineOfBusiness" />
+ </java-attributes>
+ </java-type>
+ <java-type name="LineOfBusiness">
+ <xml-root-element name="line-of-business" />
+ <java-attributes>
+ <xml-element java-attribute="lineOfBusinessName" name="line-of-business-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the line-of-business (product)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes a line-of-business" />
+ <xml-property name="indexedProps" value="line-of-business-name" />
+ <xml-property name="uniqueProps" value="line-of-business-name" />
+ <xml-property name="container" value="lines-of-business" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="OwningEntities">
+ <xml-properties>
+ <xml-property name="description" value="Collection of owning-entities" />
+ </xml-properties>
+ <xml-root-element name="owning-entities" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="owningEntity" name="owning-entity" type="inventory.aai.onap.org.v13.OwningEntity" />
+ </java-attributes>
+ </java-type>
+ <java-type name="OwningEntity">
+ <xml-root-element name="owning-entity" />
+ <java-attributes>
+ <xml-element java-attribute="owningEntityId" name="owning-entity-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID of an owning entity" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="owningEntityName" name="owning-entity-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Owning entity name" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes an owning-entity" />
+ <xml-property name="indexedProps" value="owning-entity-id,owning-entity-name" />
+ <xml-property name="searchable" value="owning-entity-id" />
+ <xml-property name="uniqueProps" value="owning-entity-id,owning-entity-name" />
+ <xml-property name="container" value="owning-entities" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Platforms">
+ <xml-properties>
+ <xml-property name="description" value="Collection of platforms" />
+ </xml-properties>
+ <xml-root-element name="platforms" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="platform" name="platform" type="inventory.aai.onap.org.v13.Platform" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Platform">
+ <xml-root-element name="platform" />
+ <java-attributes>
+ <xml-element java-attribute="platformName" name="platform-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the platform" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes a platform" />
+ <xml-property name="indexedProps" value="platform-name" />
+ <xml-property name="uniqueProps" value="platform-name" />
+ <xml-property name="container" value="platforms" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Projects">
+ <xml-properties>
+ <xml-property name="description" value="Collection of projects" />
+ </xml-properties>
+ <xml-root-element name="projects" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="project" name="project" type="inventory.aai.onap.org.v13.Project" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Project">
+ <xml-root-element name="project" />
+ <java-attributes>
+ <xml-element java-attribute="projectName" name="project-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name of the project deploying a service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="describes the project" />
+ <xml-property name="indexedProps" value="project-name" />
+ <xml-property name="uniqueProps" value="project-name" />
+ <xml-property name="container" value="projects" />
+ <xml-property name="namespace" value="business" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceSubscriptions">
+ <xml-properties>
+ <xml-property name="description" value="Collection of objects that group service instances." />
+ </xml-properties>
+ <xml-root-element name="service-subscriptions" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceSubscription" name="service-subscription" type="inventory.aai.onap.org.v13.ServiceSubscription" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceSubscription">
+ <xml-root-element name="service-subscription" />
+ <java-attributes>
+ <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Value defined by orchestration to identify this service across ECOMP." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tempUbSubAccountId" name="temp-ub-sub-account-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This property will be deleted from A&amp;AI in the near future. Only stop gap solution." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstances" name="service-instances" type="inventory.aai.onap.org.v13.ServiceInstances">
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Object that group service instances." />
+ <xml-property name="indexedProps" value="service-type" />
+ <xml-property name="dependentOn" value="customer" />
+ <xml-property name="container" value="service-subscriptions" />
+ <xml-property name="crossEntityReference" value="service-instance,service-type" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceInstances">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service instances" />
+ </xml-properties>
+ <xml-root-element name="service-instances" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceInstance" name="service-instance" type="inventory.aai.onap.org.v13.ServiceInstance" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceInstance">
+ <xml-root-element name="service-instance" />
+ <java-attributes>
+ <xml-element java-attribute="serviceInstanceId" name="service-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Uniquely identifies this instance of a service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstanceName" name="service-instance-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store a name assigned to the service-instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceType" name="service-type" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceRole" name="service-role" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing the service role." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="environmentContext" name="environment-context" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store the environment context assigned to the service-instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="workloadContext" name="workload-context" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This field will store the workload context assigned to the service-instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthTotal" name="bandwidth-total" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the total bandwidth to be used for this service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vhnPortalUrl" name="vhn-portal-url" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL customers will use to access the vHN Portal." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceInstanceLocationId" name="service-instance-location-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="An identifier that customers assign to the location where this service is being used." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata" />
+ <xml-element java-attribute="allottedResources" name="allotted-resources" type="inventory.aai.onap.org.v13.AllottedResources" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Instance of a service" />
+ <xml-property name="indexedProps" value="service-instance-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,service-instance-name,service-instance-location-id,orchestration-status,environment-context,workload-context" />
+ <xml-property name="nameProps" value="service-instance-name" />
+ <xml-property name="searchable" value="service-instance-id,service-instance-name" />
+ <xml-property name="uniqueProps" value="service-instance-id" />
+ <xml-property name="dependentOn" value="service-subscription" />
+ <xml-property name="container" value="service-instances" />
+ </xml-properties>
+ </java-type>
+ <java-type name="TunnelXconnects">
+ <xml-properties>
+ <xml-property name="description" value="This object is used to store the specific tunnel cross connect aspects of an allotted resource" />
+ </xml-properties>
+ <xml-root-element name="tunnel-xconnects" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="tunnelXconnect" name="tunnel-xconnect" type="inventory.aai.onap.org.v13.TunnelXconnect" />
+ </java-attributes>
+ </java-type>
+ <java-type name="TunnelXconnect">
+ <xml-root-element name="tunnel-xconnect" />
+ <java-attributes>
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Allotted Resource id UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan1" name="bandwidth-up-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN uplink bandwidth for WAN1" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan1" name="bandwidth-down-wan1" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN downlink bandwidth for WAN1" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthUpWan2" name="bandwidth-up-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN uplink bandwidth for WAN2" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="bandwidthDownWan2" name="bandwidth-down-wan2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The WAN downlink bandwidth for WAN2" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Represents the specifics of a tunnel cross connect piece of a resource that gets separately allotted" />
+ <xml-property name="uniqueProps" value="id" />
+ <xml-property name="indexedProps" value="id" />
+ <xml-property name="dependentOn" value="allotted-resource" />
+ <xml-property name="container" value="tunnel-xconnects" />
+ <!-- <xml-property name="namespace" value="network" /> -->
+ </xml-properties>
+ </java-type>
+ </java-types>
+</xml-bindings>
diff --git a/aai-schema-ingest/src/test/resources/oxm/common_oxm_v13.xml b/aai-schema-ingest/src/test/resources/oxm/common_oxm_v13.xml
new file mode 100644
index 00000000..18f150b6
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/oxm/common_oxm_v13.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ ============LICENSE_START=======================================================
+ org.openecomp.aai
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v13" xml-mapping-metadata-complete="true">
+ <xml-schema element-form-default="QUALIFIED">
+ <xml-ns namespace-uri="http://org.onap.aai.inventory/v13" />
+ </xml-schema>
+ <java-types>
+ <java-type name="RelationshipList">
+ <xml-root-element name="relationship-list" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relationship" name="relationship" type="inventory.aai.onap.org.v13.Relationship" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Relationship">
+ <xml-root-element name="relationship" />
+ <java-attributes>
+ <xml-element java-attribute="relatedTo" name="related-to" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="A keyword provided by A&amp;AI to indicate type of node." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipLabel" name="relationship-label" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The edge label for this relationship." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relatedLink" name="related-link" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to the object in A&amp;AI." />
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relationshipData" name="relationship-data" type="inventory.aai.onap.org.v13.RelationshipData" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="relatedToProperty" name="related-to-property" type="inventory.aai.onap.org.v13.RelatedToProperty" />
+ </java-attributes>
+ </java-type>
+ <java-type name="RelatedToProperty">
+ <xml-root-element name="related-to-property" />
+ <java-attributes>
+ <xml-element java-attribute="propertyKey" name="property-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Key part of a key/value pair" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="propertyValue" name="property-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Value part of a key/value pair" />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="RelationshipData">
+ <xml-root-element name="relationship-data" />
+ <java-attributes>
+ <xml-element java-attribute="relationshipKey" name="relationship-key" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="A keyword provided by A&amp;AI to indicate an attribute." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipValue" name="relationship-value" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Value of the attribute." />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="Metadata">
+ <xml-properties>
+ <xml-property name="description" value="Collection of metadatum (key/value pairs)" />
+ </xml-properties>
+ <xml-root-element name="metadata" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="metadatum" name="metadatum" type="inventory.aai.onap.org.v13.Metadatum" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Metadatum">
+ <xml-root-element name="metadatum" />
+ <java-attributes>
+ <xml-element java-attribute="metaname" name="metaname" required="true" type="java.lang.String" xml-key="true" />
+ <xml-element java-attribute="metaval" name="metaval" required="true" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Key/value pairs" />
+ <xml-property name="indexedProps" value="metaname" />
+ <xml-property name="dependentOn" value="tenant,image,service-instance,connector,model" />
+ <xml-property name="container" value="metadata" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Collections">
+ <xml-root-element name="collections" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="collection" name="collection" type="inventory.aai.onap.org.v13.Collection" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Collection">
+ <xml-root-element name="collection"/>
+ <java-attributes>
+ <xml-element java-attribute="collectionId" name="collection-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Collection Object UUID"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ASDC model id for this resource or service model" />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Model Version" />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionName" name="collection-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="collection name" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionType" name="collection-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collection type" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionRole" name="collection-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collection Role" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionFunction" name="collection-function" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collection function" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="orchestration status" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectionCustomizationId" name="collection-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the id of all the configuration used to customize the resource for the service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="namespace" value="network" />
+ <xml-property name="description" value="represents the collection resource in the TOSCA model" />
+ <xml-property name="uniqueProps" value="collection-id" />
+ <xml-property name="indexedProps" value="collection-id,model-invariant-id,model-version-id" />
+ <xml-property name="container" value="collections" />
+ </xml-properties>
+ </java-type>
+ </java-types>
+</xml-bindings>
diff --git a/aai-schema-ingest/src/test/resources/oxm/goodConfigForValidationTest_oxm.xml b/aai-schema-ingest/src/test/resources/oxm/goodConfigForValidationTest_oxm.xml
index b3da71d8..60d000a7 100644
--- a/aai-schema-ingest/src/test/resources/oxm/goodConfigForValidationTest_oxm.xml
+++ b/aai-schema-ingest/src/test/resources/oxm/goodConfigForValidationTest_oxm.xml
@@ -24,6 +24,9 @@
<xml-ns namespace-uri="http://org.onap.aai.inventory/v12" />
</xml-schema>
<java-types>
+ <java-type name="Bloop">
+ <xml-root-element name="bloop" />
+ </java-type>
<java-type name="LogicalLink">
<xml-root-element name="logical-link" />
<java-attributes>
diff --git a/aai-schema-ingest/src/test/resources/oxm/network_oxm_v13.xml b/aai-schema-ingest/src/test/resources/oxm/network_oxm_v13.xml
new file mode 100644
index 00000000..0bf7c205
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/oxm/network_oxm_v13.xml
@@ -0,0 +1,3412 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ ============LICENSE_START=======================================================
+ org.openecomp.aai
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v13" xml-mapping-metadata-complete="true">
+ <xml-schema element-form-default="QUALIFIED">
+ <xml-ns namespace-uri="http://org.onap.aai.inventory/v13" />
+ </xml-schema>
+ <java-types>
+ <java-type name="LInterfaces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of logical interfaces." />
+ </xml-properties>
+ <xml-root-element name="l-interfaces" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lInterface" name="l-interface" type="inventory.aai.onap.org.v13.LInterface" />
+ </java-attributes>
+ </java-type>
+ <java-type name="LInterface">
+ <xml-root-element name="l-interface" />
+ <java-attributes>
+ <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name given to the interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="E.g., CUSTOMER, UPLINK, etc." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="v6WanLinkIp" name="v6-wan-link-ip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID of interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="macaddr" name="macaddr" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="MAC address for the interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkName" name="network-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the network" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Human friendly text regarding this interface." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isPortMirrored" name="is-port-mirrored" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not port is a mirrored." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV]." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isIpUnnumbered" name="is-ip-unnumbered" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="allowedAddressPairs" name="allowed-address-pairs" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Freeform field for storing an ip address, list of ip addresses or a subnet block." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.onap.org.v13.Vlans" />
+ <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.onap.org.v13.SriovVfs" />
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv4AddressList" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv6AddressList" />
+ <xml-element java-attribute="adminStatus" name="admin-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Administrative status of the interface. Valid values are 'up', 'down', or 'testing'." />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Logical interfaces, e.g., a vnic." />
+ <xml-property name="indexedProps" value="macaddr,interface-id,interface-name,network-name" />
+ <xml-property name="dependentOn" value="generic-vnf,newvce,p-interface,vserver,lag-interface" />
+ <xml-property name="container" value="l-interfaces" />
+ </xml-properties>
+ </java-type>
+ <java-type name="SriovVfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of SR-IOV Virtual Functions." />
+ </xml-properties>
+ <xml-root-element name="sriov-vfs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sriovVf" name="sriov-vf" type="inventory.aai.onap.org.v13.SriovVf" />
+ </java-attributes>
+ </java-type>
+ <java-type name="SriovVf">
+ <xml-root-element name="sriov-vf" />
+ <java-attributes>
+ <xml-element java-attribute="pciId" name="pci-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="PCI ID used to identify the sriov-vf" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfVlanFilter" name="vf-vlan-filter" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfMacFilter" name="vf-mac-filter" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="When MAC filters are specified, VF-agent service configures VFs to do MAC level filtering before the traffic is passed to VM." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfVlanStrip" name="vf-vlan-strip" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="When this field is set to true, VF will configured to strip the outer TAG before the traffic is passed to VM." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfVlanAntiSpoofCheck" name="vf-vlan-anti-spoof-check" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option ensures anti VLAN spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfMacAntiSpoofCheck" name="vf-mac-anti-spoof-check" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option ensures anti MAC spoof checks are done at the VF level to comply with security. The disable check will also be honored per the VNF needs for trusted VMs." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfMirrors" name="vf-mirrors" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This option defines the set of Mirror objects which essentially mirrors the traffic from source to set of collector VNF Ports." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfBroadcastAllow" name="vf-broadcast-allow" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows all broadcast traffic to reach the VM" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfUnknownMulticastAllow" name="vf-unknown-multicast-allow" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown multicast traffic to reach the VM" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfUnknownUnicastAllow" name="vf-unknown-unicast-allow" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, sets the VF in promiscuous mode and allows unknown unicast traffic to reach the VM" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfInsertStag" name="vf-insert-stag" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="This option, if set to true, instructs to insert outer tag after traffic comes out of VM." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfLinkStatus" name="vf-link-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This option is used to set the link status. Valid values as of 1607 are on, off, and auto." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of the interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="SR-IOV Virtual Function (not to be confused with virtual network function)" />
+ <xml-property name="indexedProps" value="pci-id,vf-vlan-filter,vf-mac-filter,vf-vlan-strip,neutron-network-id" />
+ <xml-property name="dependentOn" value="l-interface" />
+ <xml-property name="container" value="sriov-vfs" />
+ </xml-properties>
+ </java-type>
+ <java-type name="L3InterfaceIpv4AddressList">
+ <xml-root-element name="l3-interface-ipv4-address-list" />
+ <java-attributes>
+ <xml-element java-attribute="l3InterfaceIpv4Address" name="l3-interface-ipv4-address" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="IP address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="l3InterfaceIpv4PrefixLength" name="l3-interface-ipv4-prefix-length" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Prefix length, 32 for single address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Inner VLAN tag" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Outer VLAN tag" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="Indicator of fixed or floating address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of the interface that address belongs to" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron id of subnet that address belongs to" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="IPv4 Address Range" />
+ <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" />
+ <xml-property name="dependentOn" value="vlan,l-interface,vnfc" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Vlans">
+ <xml-root-element name="vlans" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vlan" name="vlan" type="inventory.aai.onap.org.v13.Vlan" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Vlan">
+ <xml-root-element name="vlan" />
+ <java-attributes>
+ <xml-element java-attribute="vlanInterface" name="vlan-interface" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="String that identifies the interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Inner VLAN tag" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Outer VLAN tag" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanDescription" name="vlan-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used to describe (the service associated with) the vlan" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="backdoorConnection" name="backdoor-connection" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Whether customer is going to use this VLAN for backdoor connection to another customer premise device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnKey" name="vpn-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="This indicates the customers VPN ID associated with this vlan" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV]." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="isIpUnnumbered" name="is-ip-unnumbered" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv4AddressList" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv6AddressList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Definition of vlan" />
+ <xml-property name="indexedProps" value="vlan-interface,vlan-id-inner,vpn-key" />
+ <xml-property name="dependentOn" value="l-interface" />
+ <xml-property name="container" value="vlans" />
+ </xml-properties>
+ </java-type>
+ <java-type name="L3InterfaceIpv6AddressList">
+ <xml-root-element name="l3-interface-ipv6-address-list" />
+ <java-attributes>
+ <xml-element java-attribute="l3InterfaceIpv6Address" name="l3-interface-ipv6-address" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="IP address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="l3InterfaceIpv6PrefixLength" name="l3-interface-ipv6-prefix-length" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Prefix length, 128 for single address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Inner VLAN tag" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Outer VLAN tag" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="Indicator of fixed or floating address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of the interface that address belongs to" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron id of subnet that address belongs to" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="IPv6 Address Range" />
+ <xml-property name="indexedProps" value="l3-interface-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" />
+ <xml-property name="dependentOn" value="vlan,l-interface,vnfc" />
+ </xml-properties>
+ </java-type>
+ <java-type name="PInterfaces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of physical interfaces." />
+ </xml-properties>
+ <xml-root-element name="p-interfaces" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="pInterface" name="p-interface" type="inventory.aai.onap.org.v13.PInterface" />
+ </java-attributes>
+ </java-type>
+ <java-type name="PInterface">
+ <xml-root-element name="p-interface" />
+ <java-attributes>
+ <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name that identifies the physical interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portDescription" name="port-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Nature of the services and connectivity on this port." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentIdentifier" name="equipment-identifier" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CLEI or other specification for p-interface hardware." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role specification for p-interface hardware." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceType" name="interface-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the physical properties of the interface." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="inventory status" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="sriovPfs" name="sriov-pfs" type="inventory.aai.onap.org.v13.SriovPfs" />
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Physical interface (e.g., nic)" />
+ <xml-property name="indexedProps" value="interface-name,prov-status" />
+ <xml-property name="nameProps" value="prov-status" />
+ <xml-property name="dependentOn" value="vpls-pe,pserver,pnf" />
+ <xml-property name="container" value="p-interfaces" />
+ </xml-properties>
+ </java-type>
+ <java-type name="LagInterfaces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of link aggregate interfaces." />
+ </xml-properties>
+ <xml-root-element name="lag-interfaces" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lagInterface" name="lag-interface" type="inventory.aai.onap.org.v13.LagInterface" />
+ </java-attributes>
+ </java-type>
+ <java-type name="LagInterface">
+ <xml-root-element name="lag-interface" />
+ <java-attributes>
+ <xml-element java-attribute="interfaceName" name="interface-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Name that identifies the link aggregate interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceDescription" name="interface-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Human friendly text regarding this interface." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceId" name="interface-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID of interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" java-attribute="inMaint" name="in-maint" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Link aggregate interface" />
+ <xml-property name="indexedProps" value="interface-name,interface-id,interface-role" />
+ <xml-property name="dependentOn" value="generic-vnf,pserver,vpls-pe,pnf" />
+ <xml-property name="container" value="lag-interfaces" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Network">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for network inventory resources." />
+ </xml-properties>
+ <xml-root-element name="network" />
+ <java-attributes>
+ <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.onap.org.v13.LogicalLinks" />
+ <xml-element java-attribute="sitePairSets" name="site-pair-sets" type="inventory.aai.onap.org.v13.SitePairSets" />
+ <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.onap.org.v13.VpnBindings" />
+ <xml-element java-attribute="vplsPes" name="vpls-pes" type="inventory.aai.onap.org.v13.VplsPes" />
+ <xml-element java-attribute="multicastConfigurations" name="multicast-configurations" type="inventory.aai.onap.org.v13.MulticastConfigurations" />
+ <xml-element java-attribute="vces" name="vces" type="inventory.aai.onap.org.v13.Vces" />
+ <xml-element java-attribute="vnfcs" name="vnfcs" type="inventory.aai.onap.org.v13.Vnfcs" />
+ <xml-element java-attribute="l3Networks" name="l3-networks" type="inventory.aai.onap.org.v13.L3Networks" />
+ <xml-element java-attribute="networkPolicies" name="network-policies" type="inventory.aai.onap.org.v13.NetworkPolicies" />
+ <xml-element java-attribute="genericVnfs" name="generic-vnfs" type="inventory.aai.onap.org.v13.GenericVnfs" />
+ <xml-element java-attribute="lagLinks" name="lag-links" type="inventory.aai.onap.org.v13.LagLinks" />
+ <xml-element java-attribute="newvces" name="newvces" type="inventory.aai.onap.org.v13.Newvces" />
+ <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.onap.org.v13.Pnfs" />
+ <xml-element java-attribute="physicalLinks" name="physical-links" type="inventory.aai.onap.org.v13.PhysicalLinks" />
+ <xml-element java-attribute="ipsecConfigurations" name="ipsec-configurations" type="inventory.aai.onap.org.v13.IpsecConfigurations" />
+ <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.onap.org.v13.RouteTableReferences" />
+ <xml-element java-attribute="instanceGroups" name="instance-groups" type="inventory.aai.onap.org.v13.InstanceGroups" />
+ <xml-element java-attribute="zones" name="zones" type="inventory.aai.onap.org.v13.Zones" />
+ <xml-element java-attribute="configurations" name="configurations" type="inventory.aai.onap.org.v13.Configurations" />
+ <xml-element java-attribute="forwardingPaths" name="forwarding-paths" type="inventory.aai.onap.org.v13.ForwardingPaths" />
+ <xml-element java-attribute="collections" name="collections" type="inventory.aai.onap.org.v13.Collections" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Configurations">
+ <xml-properties>
+ <xml-property name="description" value="Collection of configurations" />
+ </xml-properties>
+ <xml-root-element name="configurations" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="configuration" name="configuration" type="inventory.aai.onap.org.v13.Configuration" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Configuration">
+ <xml-root-element name="configuration" />
+ <java-attributes>
+ <xml-element java-attribute="configurationId" name="configuration-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID assigned to configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates the entity that will manage this feature. Could be an organization or the name of the application as well." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationName" name="configuration-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationType" name="configuration-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="port-mirroring-configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationSubType" name="configuration-sub-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="vprobe, pprobe." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of the configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="configurationSelflink" name="configuration-selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details from SDN-GC." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="id of the configuration used to customize the resource" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tunnelBandwidth" name="tunnel-bandwidth" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="DHV Site Effective Bandwidth" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vendorAllowedMaxBandwidth" name="vendor-allowed-max-bandwidth" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Velocloud Nominal Throughput - VNT" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata" />
+ <xml-element java-attribute="forwarderEvcs" name="forwarder-evcs" type="inventory.aai.onap.org.v13.ForwarderEvcs" />
+ <xml-element java-attribute="evcs" name="evcs" type="inventory.aai.onap.org.v13.Evcs" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Generic configuration object." />
+ <xml-property name="indexedProps" value="configuration-id,model-invariant-id,model-version-id" />
+ <xml-property name="uniqueProps" value="configuration-id" />
+ <xml-property name="container" value="configurations" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="LogicalLinks">
+ <xml-properties>
+ <xml-property name="description" value="Collection of logical connections" />
+ </xml-properties>
+ <xml-root-element name="logical-links" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="logicalLink" name="logical-link" type="inventory.aai.onap.org.v13.LogicalLink" />
+ </java-attributes>
+ </java-type>
+ <java-type name="LogicalLink">
+ <xml-root-element name="logical-link" />
+ <java-attributes>
+ <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkType" name="link-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of logical link, e.g., evc" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4, v6, or ds for dual stack (should be att-ip-version)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routingProtocol" name="routing-protocol" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="For example, static or BGP" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indication of operational status of the logical link." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkRole" name="link-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indication of the network use of the logical link." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkName2" name="link-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alias or alternate name (CLCI or D1 name)." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="linkId" name="link-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the logical-link, SDNC generates this." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Circuit id" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="purpose" name="purpose" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Reason for this entity, role it is playing" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Logical links generally connect l-interfaces but are used to express logical connectivity between two points" />
+ <xml-property name="indexedProps" value="link-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,link-id,prov-status,circuit-id,purpose" />
+ <xml-property name="uniqueProps" value="link-id" />
+ <xml-property name="container" value="logical-links" />
+ <xml-property name="namespace" value="network" />
+ <xml-property name="searchable" value="link-name" />
+ </xml-properties>
+ </java-type>
+ <java-type name="SitePairSets">
+ <xml-properties>
+ <xml-property name="description" value="Collection of sets of instances for probes related to generic-vnf" />
+ </xml-properties>
+ <xml-root-element name="site-pair-sets" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sitePairSet" name="site-pair-set" type="inventory.aai.onap.org.v13.SitePairSet" />
+ </java-attributes>
+ </java-type>
+ <java-type name="SitePairSet">
+ <xml-root-element name="site-pair-set" />
+ <java-attributes>
+ <xml-element java-attribute="sitePairSetId" name="site-pair-set-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of site pair set." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routingInstances" name="routing-instances" type="inventory.aai.onap.org.v13.RoutingInstances" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Set of instances for probes used to measure service level agreements" />
+ <xml-property name="indexedProps" value="site-pair-set-id" />
+ <xml-property name="uniqueProps" value="site-pair-set-id" />
+ <xml-property name="container" value="site-pair-sets" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="RoutingInstances">
+ <xml-properties>
+ <xml-property name="description" value="set of probes related to generic-vnf routing instance" />
+ </xml-properties>
+ <xml-root-element name="routing-instances" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="routingInstance" name="routing-instance" type="inventory.aai.onap.org.v13.RoutingInstance" />
+ </java-attributes>
+ </java-type>
+ <java-type name="RoutingInstance">
+ <xml-root-element name="routing-instance" />
+ <java-attributes>
+ <xml-element java-attribute="routingInstanceId" name="routing-instance-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of routing instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="rpmOwner" name="rpm-owner" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="rpm owner" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sitePairs" name="site-pairs" type="inventory.aai.onap.org.v13.SitePairs" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="routing-instance-id" />
+ <xml-property name="dependentOn" value="site-pair-set" />
+ <xml-property name="container" value="routing-instances" />
+ </xml-properties>
+ </java-type>
+ <java-type name="SitePairs">
+ <xml-properties>
+ <xml-property name="description" value="probe within a set" />
+ </xml-properties>
+ <xml-root-element name="site-pairs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sitePair" name="site-pair" type="inventory.aai.onap.org.v13.SitePair" />
+ </java-attributes>
+ </java-type>
+ <java-type name="SitePair">
+ <xml-root-element name="site-pair" />
+ <java-attributes>
+ <xml-element java-attribute="sitePairId" name="site-pair-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="unique identifier of probe" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sourceIp" name="source-ip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prefix address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="destinationIp" name="destination-ip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prefix address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ip version, v4, v6" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="destinationHostname" name="destination-hostname" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Hostname of the destination equipment to which SLAs are measured against." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="destinationEquipType" name="destination-equip-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The type of destinatination equipment. Could be Router, UCPE, etc." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="classesOfService" name="classes-of-service" type="inventory.aai.onap.org.v13.ClassesOfService" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="site-pair-id" />
+ <xml-property name="uniqueProps" value="site-pair-id" />
+ <xml-property name="dependentOn" value="routing-instance" />
+ <xml-property name="container" value="site-pairs" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ClassesOfService">
+ <xml-properties>
+ <xml-property name="description" value="class-of-service of probe" />
+ </xml-properties>
+ <xml-root-element name="classes-of-service" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="classOfService" name="class-of-service" type="inventory.aai.onap.org.v13.ClassOfService" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ClassOfService">
+ <xml-root-element name="class-of-service" />
+ <java-attributes>
+ <xml-element java-attribute="cos" name="cos" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="unique identifier of probe" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="probeId" name="probe-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="identifier of probe" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="probeType" name="probe-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="type of probe" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="cos" />
+ <xml-property name="dependentOn" value="site-pair" />
+ <xml-property name="container" value="classes-of-service" />
+ </xml-properties>
+ </java-type>
+ <java-type name="VpnBindings">
+ <xml-root-element name="vpn-bindings" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vpnBinding" name="vpn-binding" type="inventory.aai.onap.org.v13.VpnBinding" />
+ </java-attributes>
+ </java-type>
+ <java-type name="VpnBinding">
+ <xml-root-element name="vpn-binding" />
+ <java-attributes>
+ <xml-element java-attribute="vpnId" name="vpn-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="VPN ID, globally unique within A&amp;AI" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnName" name="vpn-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="VPN Name" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnPlatform" name="vpn-platform" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the platform associated with the VPN example AVPN, Mobility" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnType" name="vpn-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of the vpn, should be taken from enumerated/valid values" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpnRegion" name="vpn-region" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="region of customer vpn" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="customerVpnId" name="customer-vpn-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="id for this customer vpn" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeDistinguisher" name="route-distinguisher" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeTargets" name="route-targets" type="inventory.aai.onap.org.v13.RouteTargets" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList">
+ <xml-properties>
+ <xml-property name="description" value="l3-networks relate to vpn-bindings" />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="VPN binding" />
+ <xml-property name="nameProps" value="vpn-name,vpn-type" />
+ <xml-property name="indexedProps" value="vpn-name,vpn-id,vpn-type" />
+ <xml-property name="searchable" value="vpn-id,vpn-name" />
+ <xml-property name="uniqueProps" value="vpn-id" />
+ <xml-property name="container" value="vpn-bindings" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="VplsPes">
+ <xml-properties>
+ <xml-property name="description" value="Collection of VPLS Provider Edge routers" />
+ </xml-properties>
+ <xml-root-element name="vpls-pes" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vplsPe" name="vpls-pe" type="inventory.aai.onap.org.v13.VplsPe" />
+ </java-attributes>
+ </java-type>
+ <java-type name="VplsPe">
+ <xml-root-element name="vpls-pe" />
+ <java-attributes>
+ <xml-element java-attribute="equipmentName" name="equipment-name" required="true" type="java.lang.String" xml-key="true" />
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address)." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Client should send valid enumerated value, e.g., VPLS-PE." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Temporary location for stag to get to VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v13.PInterfaces" />
+ <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v13.LagInterfaces" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="VPLS Provider Edge routers." />
+ <xml-property name="indexedProps" value="prov-status,equipment-name" />
+ <xml-property name="container" value="vpls-pes" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="MulticastConfigurations">
+ <xml-properties>
+ <xml-property name="description" value="multicast configuration of generic-vnf ip-address" />
+ </xml-properties>
+ <xml-root-element name="multicast-configurations" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="multicastConfiguration" name="multicast-configuration" type="inventory.aai.onap.org.v13.MulticastConfiguration" />
+ </java-attributes>
+ </java-type>
+ <java-type name="MulticastConfiguration">
+ <xml-root-element name="multicast-configuration" />
+ <java-attributes>
+ <xml-element java-attribute="multicastConfigurationId" name="multicast-configuration-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of multicast configuration." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="multicastProtocol" name="multicast-protocol" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="protocol of multicast configuration" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="rpType" name="rp-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="rp type of multicast configuration" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="multicast-configuration-id" />
+ <xml-property name="uniqueProps" value="multicast-configuration-id" />
+ <xml-property name="container" value="multicast-configurations" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Vces">
+ <xml-properties>
+ <xml-property name="description" value="Collection of Virtual Customer Edge Routers, used specifically for Gamma. This object is deprecated." />
+ </xml-properties>
+ <xml-root-element name="vces" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vce" name="vce" type="inventory.aai.onap.org.v13.Vce" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Vce">
+ <xml-root-element name="vce" />
+ <java-attributes>
+ <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF. This is unique across the graph." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of VNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alternate name of VNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - do not use" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network role being played by this VNF" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vpeId" name="vpe-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of VPE connected to this VCE." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="v6VceWanAddress" name="v6-vce-wan-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Valid v6 IP address for the WAN Link on this router. Implied length of /64." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Loopback0 address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - see child relationships" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portGroups" name="port-groups" type="inventory.aai.onap.org.v13.PortGroups" />
+ <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.onap.org.v13.Licenses" />
+ <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.onap.org.v13.Entitlements" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Virtual Customer Edge Router, used specifically for Gamma. This object is deprecated." />
+ <xml-property name="nameProps" value="vnf-name" />
+ <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,interface-name,regional-resource-zone,vpe-id,prov-status,service-id" />
+ <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" />
+ <xml-property name="uniqueProps" value="vnf-id" />
+ <xml-property name="container" value="vces" />
+ <xml-property name="namespace" value="network" />
+ <xml-property name="extends" value="vnf" />
+ </xml-properties>
+ </java-type>
+ <java-type name="PortGroups">
+ <xml-root-element name="port-groups" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="portGroup" name="port-group" type="inventory.aai.onap.org.v13.PortGroup" />
+ </java-attributes>
+ </java-type>
+ <java-type name="PortGroup">
+ <xml-root-element name="port-group" />
+ <java-attributes>
+ <xml-element java-attribute="interfaceId" name="interface-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of the interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of this Interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkName" name="neutron-network-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network name of this Interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interfaceRole" name="interface-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role assigned to this Interface, should use values as defined in ECOMP Yang models." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portGroupId" name="port-group-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID for port group in vmware" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="portGroupName" name="port-group-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Likely to duplicate value of neutron network name" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="switchName" name="switch-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="DVS or standard switch name (should be non-null for port groups associated with DVS)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cvlanTags" name="cvlan-tags" type="inventory.aai.onap.org.v13.CvlanTags" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Used to capture the network interfaces of this VCE" />
+ <xml-property name="nameProps" value="port-group-name" />
+ <xml-property name="indexedProps" value="port-group-id,heat-stack-id,interface-id,interface-name,switch-name" />
+ <xml-property name="dependentOn" value="vce" />
+ <xml-property name="container" value="port-groups" />
+ </xml-properties>
+ </java-type>
+ <java-type name="CvlanTags">
+ <xml-root-element name="cvlan-tags" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="cvlanTagEntry" name="cvlan-tag-entry" type="inventory.aai.onap.org.v13.CvlanTagEntry" />
+ </java-attributes>
+ </java-type>
+ <java-type name="CvlanTagEntry">
+ <xml-root-element name="cvlan-tag-entry" />
+ <java-attributes>
+ <xml-element java-attribute="cvlanTag" name="cvlan-tag" required="true" type="java.lang.Long" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="See mis-na-virtualization-platform.yang" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="dependentOn" value="port-group" />
+ <xml-property name="indexedProps" value="cvlan-tag" />
+ <xml-property name="container" value="cvlan-tags" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Vnfcs">
+ <xml-properties>
+ <xml-property name="description" value="virtual network components associated with a vserver from application controller." />
+ </xml-properties>
+ <xml-root-element name="vnfcs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vnfc" name="vnfc" type="inventory.aai.onap.org.v13.Vnfc" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Vnfc">
+ <xml-root-element name="vnfc" />
+ <java-attributes>
+ <xml-element java-attribute="vnfcName" name="vnfc-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of vnfc." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfcNamingCode" name="nfc-naming-code" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Short code that is used in naming instances of the item being modeled" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfcFunction" name="nfc-function" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="English description of function that the specific resource deployment is providing. Assigned as part of the customization of a resource in a service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="prov status of this vnfc" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by APP-C" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4OamVip" name="ipaddress-v4-oam-vip" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Oam V4 vip address of this vnfc" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="groupNotation" name="group-notation" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Group notation of VNFC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv4AddressList" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v13.L3InterfaceIpv6AddressList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id" />
+ <xml-property name="searchable" value="vnfc-name" />
+ <xml-property name="container" value="vnfcs" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="L3Networks">
+ <xml-root-element name="l3-networks" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="l3Network" name="l3-network" type="inventory.aai.onap.org.v13.L3Network" />
+ </java-attributes>
+ </java-type>
+ <java-type name="L3Network">
+ <xml-root-element name="l3-network" />
+ <java-attributes>
+ <xml-element java-attribute="networkId" name="network-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Network ID, should be uuid. Unique across A&amp;AI." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkName" name="network-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the network, governed by some naming convention.." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkType" name="network-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of the network - who defines these values?" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkRole" name="network-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role the network plans - who defines these values?" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkTechnology" name="network-technology" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network technology - who defines these values?" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron network id of this Interface" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="isBoundToVpn" name="is-bound-to-vpn" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Set to true if bound to VPN" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier of service from ASDC. Does not strictly map to ASDC services. SOON TO BE DEPRECATED" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkRoleInstance" name="network-role-instance" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="network role instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="contrailNetworkFqdn" name="contrail-network-fqdn" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Contrail FQDN for the network" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="physicalNetworkName" name="physical-network-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name associated with the physical network." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isProviderNetwork" name="is-provider-network" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not network is a provider network." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isSharedNetwork" name="is-shared-network" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not network is a shared network." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="isExternalNetwork" name="is-external-network" required="true" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="boolean indicatating whether or not network is an external network." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnets" name="subnets" type="inventory.aai.onap.org.v13.Subnets" />
+ <xml-element java-attribute="ctagAssignments" name="ctag-assignments" type="inventory.aai.onap.org.v13.CtagAssignments" />
+ <xml-element java-attribute="segmentationAssignments" name="segmentation-assignments" type="inventory.aai.onap.org.v13.SegmentationAssignments" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" >
+ <xml-properties>
+ <xml-property name="description" value="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding" />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Generic network definition" />
+ <xml-property name="nameProps" value="network-name" />
+ <xml-property name="indexedProps" value="heat-stack-id,network-uuid,service-id,network-id,network-name,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-network-fqdn,network-role" />
+ <xml-property name="searchable" value="network-id,network-name" />
+ <xml-property name="uniqueProps" value="network-id" />
+ <xml-property name="container" value="l3-networks" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="NetworkPolicies">
+ <xml-root-element name="network-policies" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="networkPolicy" name="network-policy" type="inventory.aai.onap.org.v13.NetworkPolicy" />
+ </java-attributes>
+ </java-type>
+ <java-type name="NetworkPolicy">
+ <xml-root-element name="network-policy" />
+ <java-attributes>
+ <xml-element java-attribute="networkPolicyId" name="network-policy-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID representing unique key to this instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkPolicyFqdn" name="network-policy-fqdn" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Contrail FQDN for the policy" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID for the openStack Heat instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="nameProps" value="network-policy-fqdn" />
+ <xml-property name="indexedProps" value="network-policy-id,network-policy-fqdn" />
+ <xml-property name="searchable" value="network-policy-id,network-policy-fqdn" />
+ <xml-property name="uniqueProps" value="network-policy-id" />
+ <xml-property name="container" value="network-policies" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="CtagAssignments">
+ <xml-root-element name="ctag-assignments" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ctagAssignment" name="ctag-assignment" type="inventory.aai.onap.org.v13.CtagAssignment" />
+ </java-attributes>
+ </java-type>
+ <java-type name="CtagAssignment">
+ <xml-root-element name="ctag-assignment" />
+ <java-attributes>
+ <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" required="true" type="java.lang.Long" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="id." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="vlan-id-inner" />
+ <xml-property name="dependentOn" value="l3-network" />
+ <xml-property name="container" value="ctag-assignments" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Subnets">
+ <xml-root-element name="subnets" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="subnet" name="subnet" type="inventory.aai.onap.org.v13.Subnet" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Subnet">
+ <xml-root-element name="subnet" />
+ <java-attributes>
+ <xml-element java-attribute="subnetId" name="subnet-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Subnet ID, should be UUID." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnetName" name="subnet-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name associated with the subnet." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Neutron id of this subnet" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="gatewayAddress" name="gateway-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="gateway ip address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="networkStartAddress" name="network-start-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="network start address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cidrMask" name="cidr-mask" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="cidr mask" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipVersion" name="ip-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ip version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="dhcpEnabled" name="dhcp-enabled" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="dhcp enabled" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dhcpStart" name="dhcp-start" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the start address reserved for use by dhcp" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dhcpEnd" name="dhcp-end" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the last address reserved for use by dhcp" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnetRole" name="subnet-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role of the subnet, referenced when assigning IPs" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipAssignmentDirection" name="ip-assignment-direction" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ip address assignment direction of the subnet" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="subnetSequence" name="subnet-sequence" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="sequence of the subnet" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="hostRoutes" name="host-routes" type="inventory.aai.onap.org.v13.HostRoutes" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="subnet-id,subnet-name" />
+ <xml-property name="nameProps" value="subnet-name" />
+ <xml-property name="uniqueProps" value="subnet-id" />
+ <xml-property name="dependentOn" value="l3-network" />
+ <xml-property name="container" value="subnets" />
+ </xml-properties>
+ </java-type>
+ <java-type name="GenericVnfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of VNFs" />
+ </xml-properties>
+ <xml-root-element name="generic-vnfs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="genericVnf" name="generic-vnf" type="inventory.aai.onap.org.v13.GenericVnf" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0" />
+ </xml-properties>
+ </java-type>
+ <java-type name="GenericVnf">
+ <xml-root-element name="generic-vnf" />
+ <java-attributes>
+ <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF. This is unique across the graph." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of VNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alternate name of VNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceId" name="service-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier of service, does not necessarily map to ASDC service models. SOON TO BE DEPRECATED" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="regionalResourceZone" name="regional-resource-zone" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Regional way of organizing pservers, source of truth should define values" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this resource by Service Assurance systems." />
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational. Valid values are in-service-path and out-of-service-path." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - do not use" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Client should send valid enumerated value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, used by MSO." />
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="identifier of managed by ATT or customer" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by generic-vnf." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4 Loopback0 address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nmLanV6Address" name="nm-lan-v6-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v6 Loopback address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementV6Address" name="management-v6-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v6 management address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vcpu" name="vcpu" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vcpuUnits" name="vcpu-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vmemory" name="vmemory" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only by uCPE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vmemoryUnits" name="vmemory-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vdisk" name="vdisk" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors, to be used only uCPE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vdiskUnits" name="vdisk-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="isClosedLoopDisabled" name="is-closed-loop-disabled" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether closed loop function is enabled on this node" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="summaryStatus" name="summary-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="encryptedAccessFlag" name="encrypted-access-flag" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="description" value="indicates whether generic-vnf access uses SSH" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="entitlementAssignmentGroupUuid" name="entitlement-assignment-group-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the Entitlement group used for licensing VNFs, OBSOLETE - See child relationships." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="entitlementResourceUuid" name="entitlement-resource-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the specific entitlement resource. OBSOLETE - See child relationships." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseAssignmentGroupUuid" name="license-assignment-group-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the license assignment group. OBSOLETE - See child relationships." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKeyUuid" name="license-key-uuid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="UUID of the actual license resource. OBSOLETE - See child relationships." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="asNumber" name="as-number" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="as-number of the VNF" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="regionalResourceSubzone" name="regional-resource-subzone" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="represents sub zone of the rr plane" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfType" name="nf-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Generic description of the type of NF" />
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfFunction" name="nf-function" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="English description of Network function that the specific VNF deployment is providing" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role in the network that this model will be providing" />
+ <xml-property name="suggestibleOnSearch" value="true"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfNamingCode" name="nf-naming-code" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="string assigned to this model used for naming purposes" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamGatewayAddress" name="ipv4-oam-gateway-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Gateway address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamGatewayAddressPrefixLength" name="ipv4-oam-gateway-address-prefix-length" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="Prefix length for oam-address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+ <xml-properties>
+ <xml-property name="description" value="Temporary location for S-TAG to get to VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nmProfileName" name="nm-profile-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network Management profile of this VNF" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces" />
+ <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v13.LagInterfaces" />
+ <xml-element java-attribute="vfModules" name="vf-modules" type="inventory.aai.onap.org.v13.VfModules" />
+ <xml-element java-attribute="licenses" name="licenses" type="inventory.aai.onap.org.v13.Licenses" />
+ <xml-element java-attribute="entitlements" name="entitlements" type="inventory.aai.onap.org.v13.Entitlements" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="General purpose VNF" />
+ <xml-property name="nameProps" value="vnf-name" />
+ <xml-property name="indexedProps" value="is-closed-loop-disabled,vnf-name2,vnf-type,heat-stack-id,in-maint,vnf-name,vnf-id,regional-resource-zone,prov-status,service-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,nf-type,nf-function,nf-naming-code,nf-role" />
+ <xml-property name="searchable" value="vnf-id,vnf-name,vnf-name2" />
+ <xml-property name="uniqueProps" value="vnf-id" />
+ <xml-property name="container" value="generic-vnfs" />
+ <xml-property name="namespace" value="network" />
+ <xml-property name="extends" value="vnf" />
+ <xml-property name="containsSuggestibleProps" value="true"/>
+ <xml-property name="suggestionAliases" value="VNFs"/>
+ </xml-properties>
+ </java-type>
+ <java-type name="VfModules">
+ <xml-properties>
+ <xml-property name="description" value="Collection of vf-modules, a deployment unit of VNFCs" />
+ </xml-properties>
+ <xml-root-element name="vf-modules" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vfModule" name="vf-module" type="inventory.aai.onap.org.v13.VfModule" />
+ </java-attributes>
+ </java-type>
+ <java-type name="VfModule">
+ <xml-root-element name="vf-module" />
+ <java-attributes>
+ <xml-element java-attribute="vfModuleId" name="vf-module-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of vf-module." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vfModuleName" name="vf-module-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of vf-module" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="orchestration status of this vf-module, mastered by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="isBaseVfModule" name="is-base-vf-module" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="used to indicate whether or not this object is base vf module" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="personaModelVersion" name="persona-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC model version for this resource or service model." />
+ <xml-property name="visibility" value="internal" />
+ <xml-property name="dataCopy" value="service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id}#model-version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelCustomizationId" name="model-customization-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="captures the id of all the configuration used to customize the resource for the service." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelId" name="widget-model-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="widgetModelVersion" name="widget-model-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="contrailServiceInstanceFqdn" name="contrail-service-instance-fqdn" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the Contrail unique ID for a service-instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="moduleIndex" name="module-index" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="the index will track the number of modules of a given type that have been deployed in a VNF, starting with 0, and always choosing the lowest available digit" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Path to the controller object." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="a deployment unit of VNFCs" />
+ <xml-property name="indexedProps" value="vf-module-id,vf-module-name,heat-stack-id,model-invariant-id,model-version-id,widget-model-id,widget-model-version,contrail-service-instance-fqdn" />
+ <xml-property name="searchable" value="vf-module-id,vf-module-name" />
+ <xml-property name="dependentOn" value="generic-vnf" />
+ <xml-property name="container" value="vf-modules" />
+ </xml-properties>
+ </java-type>
+ <java-type name="LagLinks">
+ <xml-properties>
+ <xml-property name="description" value="Collection of link aggregation connections" />
+ </xml-properties>
+ <xml-root-element name="lag-links" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="lagLink" name="lag-link" type="inventory.aai.onap.org.v13.LagLink" />
+ </java-attributes>
+ </java-type>
+ <java-type name="LagLink">
+ <xml-root-element name="lag-link" />
+ <java-attributes>
+ <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Alphabetical concatenation of lag-interface names" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="LAG links can connect lag-interfaces" />
+ <xml-property name="indexedProps" value="link-name" />
+ <xml-property name="container" value="lag-links" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Newvces">
+ <xml-properties>
+ <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." />
+ </xml-properties>
+ <xml-root-element name="newvces" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="newvce" name="newvce" type="inventory.aai.onap.org.v13.Newvce" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Newvce">
+ <xml-root-element name="newvce" />
+ <java-attributes>
+ <xml-element java-attribute="vnfId2" name="vnf-id2" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF, can't use same attribute name right now until we promote this new object" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName" name="vnf-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of VNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfName2" name="vnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Alternate name of VNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Trigger for operational monitoring of this VNF by BAU Service Assurance systems." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="operationalStatus" name="operational-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicator for whether the resource is considered operational" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="licenseKey" name="license-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="OBSOLETE - do not use" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4OamAddress" name="ipv4-oam-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Address tail-f uses to configure generic-vnf, also used for troubleshooting and is IP used for traps generated by GenericVnf (v4-loopback0-ip-address)." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipmentRole" name="equipment-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Client should send valid enumerated value." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipv4Loopback0Address" name="ipv4-loopback0-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="v4 Loopback0 address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="orchestrationStatus" name="orchestration-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Orchestration status of this VNF, mastered by MSO." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="heatStackId" name="heat-stack-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Heat stack id corresponding to this instance, managed by MSO" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="msoCatalogKey" name="mso-catalog-key" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Corresponds to the SDN-C catalog id used to configure this VCE" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="lInterfaces" name="l-interfaces" type="inventory.aai.onap.org.v13.LInterfaces" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="This object fills in the gaps from vce that were incorporated into generic-vnf. This object will be retired with vce." />
+ <xml-property name="nameProps" value="vnf-name" />
+ <xml-property name="indexedProps" value="vnf-name,vnf-name2,vnf-type,heat-stack-id,prov-status,vnf-id2" />
+ <xml-property name="searchable" value="vnf-id2,vnf-name,vnf-name2" />
+ <xml-property name="uniqueProps" value="vnf-id2" />
+ <xml-property name="container" value="newvces" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Pnfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of Physical Network Functions." />
+ </xml-properties>
+ <xml-root-element name="pnfs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="pnf" name="pnf" type="inventory.aai.onap.org.v13.Pnf" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Pnf">
+ <xml-root-element name="pnf" />
+ <java-attributes>
+ <xml-element java-attribute="pnfName" name="pnf-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="unique name of Physical Network Function." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="pnfName2" name="pnf-name2" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="name of Physical Network Function." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="pnfName2Source" name="pnf-name2-source" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="source of name2" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="pnfId" name="pnf-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="id of pnf" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipType" name="equip-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Equipment type. Source of truth should define valid values." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipVendor" name="equip-vendor" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Equipment vendor. Source of truth should define valid values." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="equipModel" name="equip-model" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Equipment model. Source of truth should define valid values." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="identifier of managed by ATT or customer" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4Oam" name="ipaddress-v4-oam" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ipv4-oam-address with new naming convention for IP addresses" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="swVersion" name="sw-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="sw-version is the version of SW for the hosted application on the PNF." />
+ </xml-properties>
+ </xml-element>
+ <xml-element default-value="false" required="true" java-attribute="inMaint" name="in-maint" type="java.lang.Boolean">
+ <xml-properties>
+ <xml-property name="defaultValue" value="false"/>
+ <xml-property name="description" value="Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="frameId" name="frame-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ID of the physical frame (relay rack) where pnf is installed." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serialNumber" name="serial-number" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Serial number of the device" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4Loopback0" name="ipaddress-v4-loopback-0" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV4 Loopback 0 address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV6Loopback0" name="ipaddress-v6-loopback-0" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV6 Loopback 0 address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV4Aim" name="ipaddress-v4-aim" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV4 AIM address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV6Aim" name="ipaddress-v6-aim" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV6 AIM address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipaddressV6Oam" name="ipaddress-v6-oam" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="IPV6 OAM address" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="invStatus" name="inv-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CANOPI's inventory status. Only set with values exactly as defined by CANOPI." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="provStatus" name="prov-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nfRole" name="nf-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Nf Role is the role performed by this instance in the network." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The ASDC model id for this resource model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The ASDC model version for this resource model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="pInterfaces" name="p-interfaces" type="inventory.aai.onap.org.v13.PInterfaces" />
+ <xml-element java-attribute="lagInterfaces" name="lag-interfaces" type="inventory.aai.onap.org.v13.LagInterfaces" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE." />
+ <xml-property name="indexedProps" value="pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id" />
+ <xml-property name="searchable" value="pnf-name" />
+ <xml-property name="uniqueProps" value="pnf-name" />
+ <xml-property name="container" value="pnfs" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="PhysicalLinks">
+ <xml-properties>
+ <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" />
+ </xml-properties>
+ <xml-root-element name="physical-links" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="physicalLink" name="physical-link" type="inventory.aai.onap.org.v13.PhysicalLink" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="maximumDepth" value="0" />
+ </xml-properties>
+ </java-type>
+ <java-type name="PhysicalLink">
+ <xml-root-element name="physical-link" />
+ <java-attributes>
+ <xml-element java-attribute="linkName" name="link-name" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedValue" name="speed-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the numeric part of the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="speedUnits" name="speed-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Captures the units corresponding to the speed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Circuit it" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dualMode" name="dual-mode" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Dual access mode (e.g., primary, secondary" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="managementOption" name="management-option" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderName" name="service-provider-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the service Provider on this link." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthUpValue" name="service-provider-bandwidth-up-value" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="Upstream Bandwidth value agreed with the service provider" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthUpUnits" name="service-provider-bandwidth-up-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Units for the upstream BW value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthDownValue" name="service-provider-bandwidth-down-value" type="java.lang.Integer">
+ <xml-properties>
+ <xml-property name="description" value="Downstream Bandwidth value agreed with the service provider" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceProviderBandwidthDownUnits" name="service-provider-bandwidth-down-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Units for downstream BW value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Collection of physical connections, typically between p-interfaces" />
+ <xml-property name="indexedProps" value="circuit-id,link-name" />
+ <xml-property name="alternateKeys1" value="circuit-id" />
+ <xml-property name="container" value="physical-links" />
+ <xml-property name="namespace" value="network" />
+ <xml-property name="searchable" value="link-name,circuit-id" />
+ </xml-properties>
+ </java-type>
+ <java-type name="VigServers">
+ <xml-root-element name="vig-servers" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vigServer" name="vig-server" type="inventory.aai.onap.org.v13.VigServer" />
+ </java-attributes>
+ </java-type>
+ <java-type name="VigServer">
+ <xml-root-element name="vig-server" />
+ <java-attributes>
+ <xml-element java-attribute="vigAddressType" name="vig-address-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="indicates whether the VIG is for AVPN or INTERNET" />
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV4Vig" name="ipaddress-v4-vig" type="java.lang.String" >
+ <xml-properties>
+ <xml-property name="description" value="v4 IP of the vig server" />
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ipaddressV6Vig" name="ipaddress-v6-vig" type="java.lang.String" >
+ <xml-properties>
+ <xml-property name="description" value="v6 IP of the vig server" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="vig-server contains information about a vig server used for IPSec-configuration. Populated by SDN-C from 1607" />
+ <xml-property name="indexedProps" value="vig-address-type" />
+ <xml-property name="dependentOn" value="ipsec-configuration" />
+ <xml-property name="container" value="vig-servers" />
+ </xml-properties>
+ </java-type>
+ <java-type name="IpsecConfigurations">
+ <xml-root-element name="ipsec-configurations" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="ipsecConfiguration" name="ipsec-configuration" type="inventory.aai.onap.org.v13.IpsecConfiguration" />
+ </java-attributes>
+ </java-type>
+ <java-type name="IpsecConfiguration">
+ <xml-root-element name="ipsec-configuration" />
+ <java-attributes>
+ <xml-element java-attribute="ipsecConfigurationId" name="ipsec-configuration-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="UUID of this configuration" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedVigAddressType" name="requested-vig-address-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicate the type of VIG server like AVPN, INTERNET, BOTH" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedEncryptionStrength" name="requested-encryption-strength" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedDmzType" name="requested-dmz-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ATT can offer a shared DMZ or a DMZ specific to a customer" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sharedDmzNetworkAddress" name="shared-dmz-network-address" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Network address of shared DMZ" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="requestedCustomerName" name="requested-customer-name" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="If the DMZ is a custom DMZ, this field will indicate the customer information" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikeVersion" name="ike-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="can be 1 or 2" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1Authentication" name="ikev1-authentication" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Contains values like md5, sha1, sha256, sha384" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1Encryption" name="ikev1-encryption" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1DhGroup" name="ikev1-dh-group" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1AmGroupId" name="ikev1-am-group-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Group name defined in VIG for clients using aggressive mode" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1AmPassword" name="ikev1-am-password" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="pre-shared key for the above group name " />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ikev1SaLifetime" name="ikev1-sa-lifetime" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Lifetime for IKEv1 SA" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecAuthentication" name="ipsec-authentication" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="md5, sha1, sha256, sha384" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecEncryption" name="ipsec-encryption" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecSaLifetime" name="ipsec-sa-lifetime" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Life time for IPSec SA" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ipsecPfs" name="ipsec-pfs" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="enable PFS or not" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="xauthUserId" name="xauth-userid" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="user ID for xAuth, sm-user,ucpeHostName,nmteHostName" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="xauthUserPassword" name="xauth-user-password" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Encrypted using the Juniper $9$ algorithm" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dpdInterval" name="dpd-interval" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The time between DPD probe" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="dpdFrequency" name="dpd-frequency" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Maximum number of DPD before claiming the tunnel is down" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ <xml-element java-attribute="vigServers" name="vig-servers" type="inventory.aai.onap.org.v13.VigServers" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="IPSec configuration node will contain various configuration data for the NMTE VNF. This node will have an edge to the generic-vnf (vnf type = TE). Starting 1607, this data will be populated by SDN-C" />
+ <xml-property name="indexedProps" value="ipsec-configuration-id" />
+ <xml-property name="uniqueProps" value="ipsec-configuration-id" />
+ <xml-property name="container" value="ipsec-configurations" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="RouteTableReferences">
+ <xml-properties>
+ <xml-property name="description" value="Collection of openstack route table references"/>
+ </xml-properties>
+ <xml-root-element name="route-table-references"/>
+ <java-attributes>
+ <xml-element name="route-table-reference" type="inventory.aai.onap.org.v13.RouteTableReference" java-attribute="routeTableReference" container-type="java.util.ArrayList"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="RouteTableReference">
+ <xml-root-element name="route-table-reference" />
+ <java-attributes>
+ <xml-element java-attribute="routeTableReferenceId" name="route-table-reference-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeTableReferenceFqdn" name="route-table-reference-fqdn" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="FQDN entry in the route table." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+
+ <xml-properties>
+ <xml-property name="description" value="Openstack route table reference." />
+ <xml-property name="nameProps" value="route-table-reference-fqdn" />
+ <xml-property name="uniqueProps" value="route-table-reference-id" />
+ <xml-property name="indexedProps" value="route-table-reference-id,route-table-reference-fqdn" />
+ <xml-property name="container" value="route-table-references" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="InstanceGroups">
+ <xml-properties>
+ <xml-property name="description" value="Collection of openstack route table references" />
+ </xml-properties>
+ <xml-root-element name="instance-groups" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="instanceGroup" name="instance-group" type="inventory.aai.onap.org.v13.InstanceGroup" />
+ </java-attributes>
+ </java-type>
+ <java-type name="InstanceGroup">
+ <xml-root-element name="instance-group" />
+ <java-attributes>
+
+ <xml-element java-attribute="id" name="id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Instance Group ID, UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="instanceGroupRole" name="instance-group-role" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="role of the instance group." />
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ASDC model id for this resource or service model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-version-id" />
+ <xml-property name="dbAlias" value="model-invariant-id-local" />
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="modelVersionId" name="model-version-id" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ASDC model version uid for this resource model." />
+ <xml-property name="visibility" value="deployment" />
+ <xml-property name="requires" value="model-invariant-id" />
+ <xml-property name="dbAlias" value="model-version-id-local" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="description" name="description" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Descriptive text to help identify the usage of this instance-group" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="instanceGroupType" name="instance-group-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Only valid value today is lower case ha for high availability" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="instanceGroupName" name="instance-group-name" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Instance-Group Name." />
+ </xml-properties>
+ </xml-element>
+
+ <xml-element java-attribute="instanceGroupFunction" name="instance-group-function" required="false" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Instance-Group Function" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+
+ <xml-properties>
+ <xml-property name="description" value="General mechanism for grouping instances" />
+ <xml-property name="nameProps" value="description,instance-group-name" />
+ <xml-property name="uniqueProps" value="id" />
+ <xml-property name="searchable" value="id,description"/>
+ <xml-property name="indexedProps" value="id,description,type,sub-type,model-invariant-id,model-version-id" />
+ <xml-property name="container" value="instance-groups" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="SegmentationAssignments">
+ <xml-properties>
+ <xml-property name="description" value="Collection of openstack segmentation assignments" />
+ </xml-properties>
+ <xml-root-element name="segmentation-assignments" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="segmentationAssignment" name="segmentation-assignment" type="inventory.aai.onap.org.v13.SegmentationAssignment" />
+ </java-attributes>
+ </java-type>
+ <java-type name="SegmentationAssignment">
+ <xml-root-element name="segmentation-assignment" />
+ <java-attributes>
+ <xml-element java-attribute="segmentationId" name="segmentation-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Route Table Reference id, UUID assigned to this instance." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Openstack segmentation assignment." />
+ <xml-property name="indexedProps" value="segmentation-id" />
+ <xml-property name="dependentOn" value="l3-network" />
+ <xml-property name="container" value="segmentation-assignments" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Entitlements">
+ <xml-properties>
+ <xml-property name="description" value="Entitlements, keyed by group-uuid and resource-uuid, related to license management" />
+ </xml-properties>
+ <xml-root-element name="entitlements" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="entitlement" name="entitlement" type="inventory.aai.onap.org.v13.Entitlement" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Entitlement">
+ <xml-root-element name="entitlement" />
+ <java-attributes>
+ <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID for the entitlement group the resource comes from, should be uuid." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of an entitlement resource. " />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Metadata for entitlement group." />
+ <xml-property name="indexedProps" value="group-uuid,resource-uuid" />
+ <xml-property name="dependentOn" value="generic-vnf,vce" />
+ <xml-property name="container" value="entitlements" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Licenses">
+ <xml-properties>
+ <xml-property name="description" value="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management" />
+ </xml-properties>
+ <xml-root-element name="licenses" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="license" name="license" type="inventory.aai.onap.org.v13.License" />
+ </java-attributes>
+ </java-type>
+ <java-type name="License">
+ <xml-root-element name="license" />
+ <java-attributes>
+ <xml-element java-attribute="groupUuid" name="group-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID for the license group the resource belongs to, should be uuid." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceUuid" name="resource-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of a license resource. " />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Metadata for license group." />
+ <xml-property name="indexedProps" value="group-uuid,resource-uuid" />
+ <xml-property name="dependentOn" value="generic-vnf,vce" />
+ <xml-property name="container" value="licenses" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Vnf">
+ <xml-root-element name="vnf"/>
+ <java-attributes>
+ <xml-element java-attribute="vnfId" name="vnf-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique id of VNF. This is unique across the graph." />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Abstract vnf class" />
+ <xml-property name="indexedProps" value="vnf-id" />
+ <xml-property name="uniqueProps" value="vnf-id" />
+ <xml-property name="inheritors" value="vce,generic-vnf" />
+ <xml-property name="abstract" value="true" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Zones">
+ <xml-properties>
+ <xml-property name="description" value="Collection of zones" />
+ </xml-properties>
+ <xml-root-element name="zones" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="zone" name="zone" type="inventory.aai.onap.org.v13.Zone" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Zone">
+ <xml-root-element name="zone" />
+ <java-attributes>
+ <xml-element java-attribute="zoneId" name="zone-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Code assigned by AIC to the zone" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="zoneName" name="zone-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="English name associated with the zone" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="designType" name="design-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Design of zone [Medium/Large…]" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="zoneContext" name="zone-context" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Context of zone [production/test]" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="status" name="status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Status of a zone." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Concurrency value" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="A zone is a grouping of assets in a location homing to the same connections into the CBB" />
+ <xml-property name="nameProps" value="zone-name" />
+ <xml-property name="indexedProps" value="zone-id,design-type,zone-context" />
+ <xml-property name="uniqueProps" value="zone-id" />
+ <xml-property name="container" value="zones" />
+ <xml-property name="namespace" value="network" />
+ </xml-properties>
+ </java-type>
+ <java-type name="RouteTargets">
+ <xml-properties>
+ <xml-property name="description" value="Collection of route target information" />
+ </xml-properties>
+ <xml-root-element name="route-targets" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="routeTarget" name="route-target" type="inventory.aai.onap.org.v13.RouteTarget" />
+ </java-attributes>
+ </java-type>
+ <java-type name="RouteTarget">
+ <xml-root-element name="route-target" />
+ <java-attributes>
+ <xml-element java-attribute="globalRouteTarget" name="global-route-target" required="true" xml-key="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Number used to identify an RT, globally unique in the network" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routeTargetRole" name="route-target-role" required="true" xml-key="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Role assigned to this route target" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Route target information" />
+ <xml-property name="container" value="route-targets" />
+ <xml-property name="dependentOn" value="vpn-binding" />
+ <xml-property name="canBeLinked" value="true" />
+ </xml-properties>
+ </java-type>
+ <java-type name="SriovPfs">
+ <xml-properties>
+ <xml-property name="description" value="Collection of SR-IOV Physical Functions." />
+ </xml-properties>
+ <xml-root-element name="sriov-pfs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="sriovPf" name="sriov-pf" type="inventory.aai.onap.org.v13.SriovPf" />
+ </java-attributes>
+ </java-type>
+ <java-type name="SriovPf">
+ <xml-root-element name="sriov-pf" />
+ <java-attributes>
+ <xml-element java-attribute="pfPciId" name="pf-pci-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Identifier for the sriov-pf" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="SR-IOV Physical Function" />
+ <xml-property name="indexedProps" value="pf-pci-id" />
+ <xml-property name="dependentOn" value="p-interface" />
+ <xml-property name="container" value="sriov-pfs" />
+ </xml-properties>
+ </java-type>
+ <java-type name="HostRoutes">
+ <xml-root-element name="host-routes" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="hostRoute" name="host-route" type="inventory.aai.onap.org.v13.HostRoute" />
+ </java-attributes>
+ </java-type>
+ <java-type name="HostRoute">
+ <xml-root-element name="host-route" />
+ <java-attributes>
+ <xml-element java-attribute="hostRouteId" name="host-route-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="host-route id" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="routePrefix" name="route-prefix" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="subnet prefix" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nextHop" name="next-hop" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Could be ip-address, hostname, or service-instance" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nextHopType" name="next-hop-type" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Should be ip-address, hostname, or service-instance to match next-hop" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="indexedProps" value="host-route-id" />
+ <xml-property name="dependentOn" value="subnet" />
+ <xml-property name="container" value="host-routes" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ForwardingPaths">
+ <xml-root-element name="forwarding-paths" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="forwardingPath" name="forwarding-path" type="inventory.aai.onap.org.v13.ForwardingPath" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ForwardingPath">
+ <xml-root-element name="forwarding-path"/>
+ <xml-properties>
+ <xml-property name="namespace" value="network"/>
+ <xml-property name="indexedProps" value="forwarding-path-id,forwarding-path-name"/>
+ <xml-property name="description" value="Entity that describes the sequenced forwarding path between interfaces of services or resources"/>
+ <xml-property name="container" value="forwarding-paths" />
+ <xml-property name="nameProps" value="forwarding-path-name" />
+ <xml-property name="uniqueProps" value="forwarding-path-id" />
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="forwardingPathId" name="forwarding-path-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of this FP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwardingPathName" name="forwarding-path-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the FP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="the self link for this FP"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwarders" name="forwarders" type="inventory.aai.onap.org.v13.Forwarders" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Forwarders">
+ <xml-root-element name="forwarders" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="forwarder" name="forwarder" type="inventory.aai.onap.org.v13.Forwarder" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Forwarder">
+ <xml-root-element name="forwarder"/>
+ <xml-properties>
+ <xml-property name="indexedProps" value="sequence"/>
+ <xml-property name="description" value="Entity describing a sequenced segment of forwarding path"/>
+ <xml-property name="container" value="forwarders" />
+ <xml-property name="dependentOn" value="forwarding-path" />
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="sequence" name="sequence" required="true" type="java.lang.Integer" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of this segmentation"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwarderRole" name="forwarder-role" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="ingress, intermediate, egress"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ <java-type name="ForwarderEvcs">
+ <xml-root-element name="forwarder-evcs"/>
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="forwarderEvc" name="forwarder-evc" type="inventory.aai.onap.org.v13.ForwarderEvc"/>
+ </java-attributes>
+ </java-type>
+ <java-type name="ForwarderEvc">
+ <xml-root-element name="forwarder-evc"/>
+ <java-attributes>
+ <xml-element java-attribute="forwarderEvcId" name="forwarder-evc-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Key for forwarder-evc object"/>
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="circuitId" name="circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Circuit ID from customer/ESP/ingress end of EVC, or reference to beater circuit on gateway/network/egress end of EVC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ivlan" name="ivlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Internal VLAN." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="svlan" name="svlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="SVLAN value for ingress of egress forwarder." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cvlan" name="cvlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CVLAN value for ingress of egress forwarder." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vlanMappings" name="vlan-mappings" type="inventory.aai.onap.org.v13.VlanMappings" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="forwarder object is an optional child object of the Configuration object." />
+ <xml-property name="dependentOn" value="configuration" />
+ <xml-property name="uniqueProps" value="forwarder-evc-id" />
+ <xml-property name="container" value="forwarder-evcs" />
+ </xml-properties>
+ </java-type>
+ <java-type name="VlanMappings">
+ <xml-properties>
+ <xml-property name="description" value="Collection of vlan mappings." />
+ </xml-properties>
+ <xml-root-element name="vlan-mappings" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vlanMapping" name="vlan-mapping" type="inventory.aai.onap.org.v13.VlanMapping" />
+ </java-attributes>
+ </java-type>
+ <java-type name="VlanMapping">
+ <xml-root-element name="vlan-mapping" />
+ <java-attributes>
+ <xml-element java-attribute="vlanMappingId" name="vlan-mapping-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Key for vlan-mapping object." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="uniCvlan" name="uni-cvlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CVLAN value from the UNI/ingress side of the SAREA gateway access device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nniSvlan" name="nni-svlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="SVLAN value from the NNI/egress side of the SAREA gateway access device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="nniCvlan" name="nni-cvlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CVLAN value from the NNI/egress side of the SAREA gateway access device." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="ivLan" name="ivlan" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The internal VLAN ('IVLAN') value. Specific to Arista devices." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="vlan-mapping object is an optional child object of the forwarder-evc object. A given forwarder-evc object may have multiple vlan-mapping objects." />
+ <xml-property name="dependentOn" value="forwarder-evc" />
+ <xml-property name="uniqueProps" value="vlan-mapping-id" />
+ <xml-property name="container" value="vlan-mappings" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Evcs">
+ <xml-root-element name="evcs" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="evc" name="evc" type="inventory.aai.onap.org.v13.Evc" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Evc">
+ <xml-root-element name="evc" />
+ <java-attributes>
+ <xml-element java-attribute="evcId" name="evc-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique/key field for the evc object" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="forwardingPathTopology" name="forwarding-path-topology" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Point-to-Point, Multi-Point" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cirValue" name="cir-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Commited Information Rate" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cirUnits" name="cir-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CIR units" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="connectionDiversityGroupId" name="connection-diversity-group-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Diversity Group ID" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceHours" name="service-hours" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="formerly Performance Group" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espEvcCircuitId" name="esp-evc-circuit-id" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="EVC Circuit ID of ESP EVC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espEvcCirValue" name="esp-evc-cir-value" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Committed Information Rate (For ESP)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espEvcCirUnits" name="esp-evc-cir-units" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="CIR units (For ESP)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="espItuCode" name="esp-itu-code" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Identifies ESP" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="collectorPopClli" name="collector-pop-clli" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Collector POP CLLI (from the hostname of the access pnf)" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="interConnectTypeIngress" name="inter-connect-type-ingress" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Interconnect type on ingress side of EVC." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tagmodeAccessIngress" name="tagmode-access-ingress" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="tagode for collector side of EVC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tagmodeAccessEgress" name="tagmode-access-egress" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="tagMode for network side of EVC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList"/>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete."/>
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="evc object is an optional child object of the Configuration object." />
+ <xml-property name="dependentOn" value="configuration" />
+ <xml-property name="uniqueProps" value="evc-id" />
+ <xml-property name="container" value="evcs" />
+ </xml-properties>
+ </java-type>
+ </java-types>
+</xml-bindings>
diff --git a/aai-schema-ingest/src/test/resources/oxm/serviceDesign_oxm_v13.xml b/aai-schema-ingest/src/test/resources/oxm/serviceDesign_oxm_v13.xml
new file mode 100644
index 00000000..6bc8988c
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/oxm/serviceDesign_oxm_v13.xml
@@ -0,0 +1,538 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ ============LICENSE_START=======================================================
+ org.openecomp.aai
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ 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.
+ ============LICENSE_END=========================================================
+ -->
+
+<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" package-name="inventory.aai.onap.org.v13" xml-mapping-metadata-complete="true">
+ <xml-schema element-form-default="QUALIFIED">
+ <xml-ns namespace-uri="http://org.onap.aai.inventory/v13" />
+ </xml-schema>
+ <java-types>
+ <java-type name="ConstrainedElementSets">
+ <xml-root-element name="constrained-element-sets" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="constrainedElementSet" name="constrained-element-set" type="inventory.aai.onap.org.v13.ConstrainedElementSet" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="ConstrainedElementSet">
+ <xml-properties>
+ <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." />
+ <xml-property name="uniqueProps" value="constrained-element-set-uuid" />
+ <xml-property name="indexedProps" value="constrained-element-set-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="constrained-element-sets" />
+ </xml-properties>
+ <xml-root-element name="constrained-element-set" />
+ <java-attributes>
+ <xml-element java-attribute="constrainedElementSetUuid" name="constrained-element-set-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" />
+ <xml-element java-attribute="checkType" name="check-type" required="true" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ <xml-element java-attribute="elementChoiceSets" name="element-choice-sets" type="inventory.aai.onap.org.v13.ElementChoiceSets" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="ElementChoiceSets">
+ <xml-root-element name="element-choice-sets" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="elementChoiceSet" name="element-choice-set" type="inventory.aai.onap.org.v13.ElementChoiceSet" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="ElementChoiceSet">
+ <xml-properties>
+ <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." />
+ <xml-property name="uniqueProps" value="element-choice-set-uuid" />
+ <xml-property name="indexedProps" value="element-choice-set-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="element-choice-sets" />
+ </xml-properties>
+ <xml-root-element name="element-choice-set" />
+ <java-attributes>
+ <xml-element java-attribute="elementChoiceSetUuid" name="element-choice-set-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="elementChoiceSetName" name="element-choice-set-name" required="true" type="java.lang.String" />
+ <xml-element java-attribute="cardinality" name="cardinality" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v13.ModelElements" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="NamedQueries">
+ <xml-root-element name="named-queries" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="namedQuery" name="named-query" type="inventory.aai.onap.org.v13.NamedQuery" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="NamedQuery">
+ <xml-properties>
+ <xml-property name="description" value="TBD" />
+ <xml-property name="nameProps" value="named-query-name" />
+ <xml-property name="uniqueProps" value="named-query-uuid" />
+ <xml-property name="indexedProps" value="named-query-uuid,named-query-name" />
+ <xml-property name="container" value="named-queries" />
+ <xml-property name="namespace" value="service-design-and-creation" />
+ </xml-properties>
+ <xml-root-element name="named-query" />
+ <java-attributes>
+ <xml-element java-attribute="namedQueryUuid" name="named-query-uuid" required="true" type="java.lang.String" xml-key="true" />
+ <xml-element java-attribute="namedQueryName" name="named-query-name" required="true" type="java.lang.String" />
+ <xml-element java-attribute="namedQueryVersion" name="named-query-version" required="true" type="java.lang.String" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="requiredInputParams" name="required-input-param" type="java.lang.String" >
+ <xml-element-wrapper name="required-input-params" />
+ </xml-element>
+ <xml-element java-attribute="description" name="description" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.onap.org.v13.NamedQueryElements" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="NamedQueryElements">
+ <xml-root-element name="named-query-elements" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="namedQueryElement" name="named-query-element" type="inventory.aai.onap.org.v13.NamedQueryElement" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="NamedQueryElement">
+ <xml-properties>
+ <xml-property name="description" value="TBD" />
+ <xml-property name="uniqueProps" value="named-query-element-uuid" />
+ <xml-property name="indexedProps" value="named-query-element-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="named-query-elements" />
+ </xml-properties>
+ <xml-root-element name="named-query-element" />
+ <java-attributes>
+ <xml-element java-attribute="namedQueryElementUuid" name="named-query-element-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ <xml-element java-attribute="propertyLimitDesc" name="property-limit-desc" type="java.lang.String" />
+ <xml-element java-attribute="doNotOutput" name="do-not-output" type="java.lang.String" />
+ <xml-element java-attribute="namedQueryElements" name="named-query-elements" type="inventory.aai.onap.org.v13.NamedQueryElements" />
+ <xml-element java-attribute="relatedLookups" name="related-lookups" type="inventory.aai.onap.org.v13.RelatedLookups" />
+ <xml-element java-attribute="propertyConstraints" name="property-constraints" type="inventory.aai.onap.org.v13.PropertyConstraints" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="RelatedLookups">
+ <xml-root-element name="related-lookups" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="relatedLookup" name="related-lookup" type="inventory.aai.onap.org.v13.RelatedLookup" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="RelatedLookup">
+ <xml-properties>
+ <xml-property name="description" value="TBD" />
+ <xml-property name="uniqueProps" value="related-lookup-uuid" />
+ <xml-property name="indexedProps" value="related-lookup-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="related-lookups" />
+ </xml-properties>
+ <xml-root-element name="related-lookup" />
+ <java-attributes>
+ <xml-element java-attribute="relatedLookupUuid" name="related-lookup-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="sourceNodeType" name="source-node-type" required="true" type="java.lang.String" />
+ <xml-element java-attribute="sourceNodeProperty" name="source-node-property" required="true" type="java.lang.String" />
+ <xml-element java-attribute="targetNodeType" name="target-node-type" required="true" type="java.lang.String" />
+ <xml-element java-attribute="targetNodeProperty" name="target-node-property" required="true" type="java.lang.String" />
+ <xml-element container-type="java.util.ArrayList" java-attribute="propertyCollectList" name="property-collect-list" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="PropertyConstraints">
+ <xml-root-element name="property-constraints" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="propertyConstraint" name="property-constraint" type="inventory.aai.onap.org.v13.PropertyConstraint" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="PropertyConstraint">
+ <xml-properties>
+ <xml-property name="description" value="TBD" />
+ <xml-property name="uniqueProps" value="property-constraint-uuid" />
+ <xml-property name="indexedProps" value="property-constraint-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="property-constraints" />
+ </xml-properties>
+ <xml-root-element name="property-constraint" />
+ <java-attributes>
+ <xml-element java-attribute="propertyConstraintUuid" name="property-constraint-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="constraintType" name="constraint-type" required="true" type="java.lang.String" />
+ <xml-element java-attribute="propertyName" name="property-name" required="true" type="java.lang.String" />
+ <xml-element java-attribute="propertyValue" name="property-value" required="true" type="java.lang.String" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceDesignAndCreation">
+ <xml-properties>
+ <xml-property name="description" value="Namespace for objects managed by ASDC" />
+ </xml-properties>
+ <xml-root-element name="service-design-and-creation" />
+ <java-attributes>
+ <xml-element java-attribute="vnfImages" name="vnf-images" type="inventory.aai.onap.org.v13.VnfImages" />
+ <xml-element java-attribute="services" name="services" type="inventory.aai.onap.org.v13.Services" />
+ <xml-element java-attribute="serviceCapabilities" name="service-capabilities" type="inventory.aai.onap.org.v13.ServiceCapabilities" />
+ <xml-element java-attribute="models" name="models" type="inventory.aai.onap.org.v13.Models" />
+ <xml-element java-attribute="namedQueries" name="named-queries" type="inventory.aai.onap.org.v13.NamedQueries" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Services">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service model definitions. Likely to be deprecated in favor of models from ASDC." />
+ </xml-properties>
+ <xml-root-element name="services" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="service" name="service" type="inventory.aai.onap.org.v13.Service" />
+ </java-attributes>
+ </java-type>
+ <java-type name="Service">
+ <xml-root-element name="service" />
+ <java-attributes>
+ <xml-element java-attribute="serviceId" name="service-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceDescription" name="service-description" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Description of the service" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceSelflink" name="service-selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="serviceVersion" name="service-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="service version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Stand-in for service model definitions. Likely to be deprecated in favor of models from ASDC. Does not strictly map to ASDC services." />
+ <xml-property name="indexedProps" value="service-description,service-id" />
+ <xml-property name="container" value="services" />
+ <xml-property name="namespace" value="service-design-and-creation" />
+ </xml-properties>
+ </java-type>
+ <java-type name="ServiceCapabilities">
+ <xml-properties>
+ <xml-property name="description" value="Collection of service capabilities." />
+ </xml-properties>
+ <xml-root-element name="service-capabilities" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="serviceCapability" name="service-capability" type="inventory.aai.onap.org.v13.ServiceCapability" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ServiceCapability">
+ <xml-root-element name="service-capability" />
+ <java-attributes>
+ <xml-element java-attribute="serviceType" name="service-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="This gets defined by others to provide a unique ID for the service, we accept what is sent." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="vnfType" name="vnf-type" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="String capturing type of vnf, that was intended to identify the ASDC resource. This field has been overloaded in service-specific ways and clients should expect changes to occur in the future to this field as ECOMP matures." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Early definition of server/resource pairings, likely to be replaced by models. No new use should be made of this." />
+ <xml-property name="indexedProps" value="service-type,vnf-type" />
+ <xml-property name="container" value="service-capabilities" />
+ <xml-property name="namespace" value="service-design-and-creation" />
+ </xml-properties>
+ </java-type>
+ <java-type name="VnfImages">
+ <xml-properties>
+ <xml-property name="description" value="Collection of image objects that pertain to a VNF that doesn't have associated vservers. This is a kludge." />
+ </xml-properties>
+ <xml-root-element name="vnf-images" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="vnfImage" name="vnf-image" type="inventory.aai.onap.org.v13.VnfImage" />
+ </java-attributes>
+ </java-type>
+ <java-type name="VnfImage">
+ <xml-root-element name="vnf-image" />
+ <java-attributes>
+ <xml-element java-attribute="vnfImageUuid" name="vnf-image-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique ID of this asset" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="application" name="application" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The application that the image instantiates." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="applicationVendor" name="application-vendor" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The vendor of the application." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="applicationVersion" name="application-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="The version of the application." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="selflink" name="selflink" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="URL to endpoint where AAI can get more details" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ <xml-properties>
+ <xml-property name="description" value="Image object that pertain to a VNF that doesn't have associated vservers. This is a kludge." />
+ <xml-property name="indexedProps" value="application,vnf-image-uuid,application-vendor,application-version" />
+ <xml-property name="uniqueProps" value="vnf-image-uuid" />
+ <xml-property name="container" value="vnf-images" />
+ <xml-property name="namespace" value="service-design-and-creation" />
+ </xml-properties>
+ </java-type>
+ <java-type name="Models">
+ <xml-properties>
+ <xml-property name="description" value="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models" />
+ </xml-properties>
+ <xml-root-element name="models" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="model" name="model" type="inventory.aai.onap.org.v13.Model" />
+ </java-attributes>
+ </java-type>
+
+ <java-type name="Model">
+ <xml-root-element name="model" />
+ <xml-properties>
+ <xml-property name="description" value="Subgraph definition provided by ASDC to describe an inventory asset and its connections related to ASDC models, independent of version" />
+ <xml-property name="nameProps" value="model-type" />
+ <xml-property name="indexedProps" value="model-invariant-id,model-type" />
+ <xml-property name="uniqueProps" value="model-invariant-id" />
+ <xml-property name="container" value="models" />
+ <xml-property name="namespace" value="service-design-and-creation" />
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="modelInvariantId" name="model-invariant-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier corresponding to the main definition of a model in ASDC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelType" name="model-type" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Type of the model, e.g., service, resource, widget, etc." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVers" name="model-vers" type="inventory.aai.onap.org.v13.ModelVers" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelVers">
+ <xml-root-element name="model-vers" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="modelVer" name="model-ver" type="inventory.aai.onap.org.v13.ModelVer" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelVer">
+ <xml-root-element name="model-ver" />
+ <xml-properties>
+ <xml-property name="description" value="Subgraph definition provided by ASDC to describe a specific version of an inventory asset and its connections related to ASDC models" />
+ <xml-property name="nameProps" value="model-name" />
+ <xml-property name="indexedProps" value="model-version-id,model-name,model-version,distribution-status" />
+ <xml-property name="uniqueProps" value="model-version-id" />
+ <xml-property name="container" value="model-vers" />
+ </xml-properties>
+ <java-attributes>
+ <xml-element java-attribute="modelVersionId" name="model-version-id" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="description" value="Unique identifier corresponding to one version of a model in ASDC" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelName" name="model-name" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Name of the model, which can change from version to version." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelVersion" name="model-version" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Version" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="distributionStatus" name="distribution-status" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Distribution Status" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelDescription" name="model-description" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Description" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v13.ModelElements" />
+ <xml-element java-attribute="metadata" name="metadata" type="inventory.aai.onap.org.v13.Metadata" />
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelElements">
+ <xml-root-element name="model-elements" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="modelElement" name="model-element" type="inventory.aai.onap.org.v13.ModelElement" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelElement">
+ <xml-properties>
+ <xml-property name="description" value="Defines how other models combine to make up a higher-level model." />
+ <xml-property name="uniqueProps" value="model-element-uuid" />
+ <xml-property name="indexedProps" value="model-element-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="model-elements" />
+ </xml-properties>
+ <xml-root-element name="model-element" />
+ <java-attributes>
+ <xml-element java-attribute="modelElementUuid" name="model-element-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="newDataDelFlag" name="new-data-del-flag" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Indicates whether this element was created as part of instantiation from this model" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="cardinality" name="cardinality" required="true" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="How many of this type of element are required/allowed" />
+ </xml-properties>
+ </xml-element>
+ <xml-element container-type="java.util.ArrayList" java-attribute="linkagePoints" name="linkage-points" type="java.lang.String" >
+ </xml-element>
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelElements" name="model-elements" type="inventory.aai.onap.org.v13.ModelElements">
+ <xml-properties>
+ <xml-property name="description" value="Defines how other models combine to make up a higher-level model" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="modelConstraints" name="model-constraints" type="inventory.aai.onap.org.v13.ModelConstraints">
+ <xml-properties>
+ <xml-property name="description" value="Describes new constraints on this model element that are not part of that model's definition" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v13.RelationshipList" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelConstraints">
+ <xml-root-element name="model-constraints" />
+ <java-attributes>
+ <xml-element container-type="java.util.ArrayList" java-attribute="modelConstraint" name="model-constraint" type="inventory.aai.onap.org.v13.ModelConstraint" />
+ </java-attributes>
+ </java-type>
+ <java-type name="ModelConstraint">
+ <xml-properties>
+ <xml-property name="description" value="This is how we would capture constraints defining allowed sets of elements." />
+ <xml-property name="uniqueProps" value="model-constraint-uuid" />
+ <xml-property name="indexedProps" value="model-constraint-uuid" />
+ <xml-property name="allowDirectRead" value="true" />
+ <xml-property name="allowDirectWrite" value="false" />
+ <xml-property name="container" value="model-constraints" />
+ </xml-properties>
+ <xml-root-element name="model-constraint" />
+ <java-attributes>
+ <xml-element java-attribute="modelConstraintUuid" name="model-constraint-uuid" required="true" type="java.lang.String" xml-key="true">
+ <xml-properties>
+ <xml-property name="autoGenerateUuid" value="true" />
+ </xml-properties>
+ </xml-element>
+ <xml-element java-attribute="constrainedElementSetUuidToReplace" name="constrained-element-set-uuid-to-replace" required="true" type="java.lang.String" />
+ <xml-element java-attribute="constrainedElementSets" name="constrained-element-sets" type="inventory.aai.onap.org.v13.ConstrainedElementSets" />
+ <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />
+ </xml-properties>
+ </xml-element>
+ </java-attributes>
+ </java-type>
+ </java-types>
+</xml-bindings>
diff --git a/aai-schema-ingest/src/test/resources/schema-ingest.properties b/aai-schema-ingest/src/test/resources/schema-ingest.properties
new file mode 100644
index 00000000..965735d8
--- /dev/null
+++ b/aai-schema-ingest/src/test/resources/schema-ingest.properties
@@ -0,0 +1,3 @@
+schema.configuration.location=foo
+schema.nodes.location=bar
+schema.edges.location=quux \ No newline at end of file
diff --git a/aai-schema-ingest/src/test/resources/schemaIngest.properties b/aai-schema-ingest/src/test/resources/schemaIngest.properties
deleted file mode 100644
index 3112c994..00000000
--- a/aai-schema-ingest/src/test/resources/schemaIngest.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-schemaConfig=foo
-nodeDir=bar
-edgeDir=quux \ No newline at end of file